c语言

来源:互联网 发布:5g网络g什么意思 编辑:程序博客网 时间:2024/05/22 18:55
c语言模块:
1. c的基础:变量的类型,输入输出的格式,常见的运算符,常见的一些字符,字符串的表示,函数等,sizeof,strlen用法;
2.  常见的C语言的结构:if else ,switch
3. 常见的循环结构: for,while,do..while();  continue,break用法;goto不作为主流用法,尽量不要用;
4. 数组,一维数组,二维数组;数组的常见用法;(重点)
5. 函数:入参,出参,返回值,函数的调用;值传递,地址传递(重点); 局部变量,全局变量;常见的关键字:static,extern,const,volatile等用法;(重点)
6.  指针: 指针和变量,字符串,函数,结构体,一维数组,二维数组等用法;这里面最需要掌握的是二维数组;(重点)
7.  结构体的使用; 定义变量,结构体元素赋等;宏,typedef ,enum,等关键字用法; 内存的用法;(内存重点)
8.  数据结构的用法:链表,堆栈,队列等用法;(重点)

9.  项目练习;


1. 变量的类型和大小
char, float ,int  ,long, short等字节长度;
char: 1个字节
float:4个字节
int: 4个字节
short:2个字节
long;  4
long long;8
double:8
 
char a[10];  ----10
int a[10];-----40
float a[10];---40
 
2. 指针的字节大小
char a[100];
char *ptr1;    ptr1 = a;      sizeof(ptr1) = 4;
 
 
int *ptr2;     sizeof(ptr2) = 4
float *ptr3;  sizeof(ptr3) = 4
 
void *p =malloc(100);  仅仅表示p可以转换成char *,int* 等,是没有void *的;
 
 
2.  C的数据类型:
 a. int ,char .float 
 b. struct ,数组,enum, union;
 c. 指针; 
 d void  类型;
 
 
3 常量,变量;
int a;
 
int  a;  (0~ 2^32 -1);
 int;  -2^31~2^31-1
unsigned  int  ; 0~2^32-1;
 
short ;   -32768~32767
unsigned short: 0~2^16-1;
 
4.整型数据的溢出
unsigned  short  a = 65535;
unsigned short b = a +1;
那么.b= 0;
 
如果是有符号数:
 short  a = 32767;
 short b = a +1;
那么.b=-32768;
 
正向整型数益处以后,从最小开始,无符号从0开始,有符号从负的最小值开始;
反向溢出时,从正的最大值开始;
 
5. 字符变量
1)用‘’表示,不能用“”表示;
2)只能是一个字符,不能几个 ;
 
单引号‘’表示字符,双引号" "表示字符串;
 
字符变量只占一个字节;
char  a = 'c';   
 
#include <stdio.h>
 
int main()
{
    char a;
 
    a = 'c';
    printf("a = %c\n",a);   ----输出 c :%c表示字符表示
    printf("a = %d\n",a);  ----输出99 %d表示十进制数
 
    return 0;
}
~       
 
6.
char c1 ,c2[10];
 
c1 = 'a';
c2 ="a";-----会出段错误;正确的写法:strcpy(c2, "a");
 
char c3[] = "hello";
int len = sizeof(c3);-----6, 包含了\0
 
char c4[100]="hello";
int len =sizeof(c4);-----100,内存已经分配                                                                                         
 
7. strcpy()
#include <string.h>
 
int main()
{
   char a[100] ;
   strcpy(a[100], "hello");----error ,it is ===strcpy(a, "hello");
    return 0;
}
       
8. 地址:
char a[100]="hello";
printf("%d\n",a);-----显示-1077796936,是个负数,因为地址最高位为1,被看成了符号位,认为是负数
printf("%x\n",a);-----显示bfc21fb8,是个地址;
 
 9. << , >>
0000 0010 << 1;变成0000 0100 ,相当于乘以2,扩大2倍;
               >>1, 变成0000 0001,相当于除以2,减小2倍;
 
10. int a[100];  a是一个整型数组,有100个元素,a[0]~a[99]
    a[100]:  在函数中出现的时候,这个错误叫做越界;
 
11. if((a/b) == 3)  -----用()把首先运算的括起来,避免编译器出问题;
 
12++, --
int len = 3;
int num;
 
num = ++len;             =====len => len +1; num = len;
printf("num=%d, len=%d\n", num, len);
显示:num=4, len = 4;
******************************
int len = 3;
int num1;
 
num1 = len++; ----= num1 = len; len = len +1;
printf("num1=%d, len=%d\n", num1, len);
显示:num1 = 3, len=4;
 
13. 有符号,无符号存放在内存中都是补码的形式;
正整数:原码,反码 ,补码都一样; 
如3:
原码:0000 0000 0000 0011
反码:0000 0000 0000 0011
补码:0000 0000 0000 0011
如-3:
原码:1000 0000 0000 0011  
反码:1111 1111 1111 1100  在原码的基础上,符号不变(最高的1),其余取反
补码:1111 1111 1111 1101  在反码的基础上,+1; 
 
 4字节的-3:前面30个1,后面是01;
 
如果char c= -3;  1111 1101
 
补码:1111 1101, 原码:1000 0010+1= 1000 0011  ==〉 -3
 
 
14 .
x += y;  ==> x = x+y;
x*= y+3;  ===>  x = x*(y+3);
x%=y;    ====>x= (x%y)
 
x += y+3 ; ====> x = x+(y+3);
 
 
15. a=(b=5);  赋值运算符从右往左结合
==> b=5;
      a = b;
 
16.  a=12;
   a+=a-=a*a;
a-=a*a; ==> a= a-a*a=12-12*12; ==-132;
a+=a; a=-132-132=-264;
 
17. 逗号运算符
表达式1,表达式2,表达式3,表达式4,  最终的值是表达式4的值
 
18. C语言以一个语句+“;”,构成一个语句
 
 if()
{
}
else
 {
    ;    表示正常的语句,不过是空语句; 
}
 
19, 对if..else.., while,do while,for, switch等语句, 要用{}把中间的语句括起来;
 
20. 输入输出函数
字符的输入输出函数:putchar(), getchar()
字符串的输入输出函数:gets(). puts();
格式化的输入输出函数:scanf();printf();
 
putchar(a); 把字符a输出到显示器;
函数原型:int putchar(int c);     
 
int getchar();   输入的字符到返回值中;
 
21 格式化的输入输出
%d:带符号的十进制;
%o:无符号八进制;
%x:无符号十六进制;
%u:无符号十进制;
%c:字符形式,一个字符;
%s:字符串的形式;
%f:实数的形式;
%e:指数的形式;
%g:宽度较短的%f, %e的形式;
 
L:长整型数;
M(正整数):数据的最小宽度;
N(正整数):对实数,表示n个小数;
                 对字符串,表示截取多少个字符;
“-”:靠左对齐;
 
%6.2s:“hello”   输出 6列 ,只取 he,前面补四个空格 ;右对齐 
% 6.2s:“hello”   输出 6列 ,只取 he,后面补四个空格 ;左对齐 
 
%6.2f : 1.2345  , 输出的 时候 是  1.23,前面补3个空格 ;右对齐 
%-6.2f ,  同上,右面补空格,左对齐 
 
22. scanf()
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
输入时 :1,2,3,输出为:1,2,3
输入: 1 2 3     输出  1   不定数据 
 
char s1[100];
scanf("%s", s1);
printf("%s\n", s1);
输入: hello  输出 : hello
输入 : hello world  输出 : hello 
scanf 遇到空格 结束 输入 ,
 

原创粉丝点击