-
没有分号的称为表达式,有分号的称为语句。
-
'\0’=0=NULL,'0’=48
-
int x=y=10错误在于:只定义了int x,没有定义int y
-
A/B运算,AB均为正整数则结果为整数(舍去余数),AB凡有一个为实数,则结果为实数。
-
A%B运算,AB必须为整型数据。仅当A为负整数时,结果为负数。
-
赋值运算仅可赋值给变量,不可以赋给常量和表达式。
-
自增自减运算只能作用于变量,不能作用于常量和表达式。
-
sizeof() 用法例:sizeof (int); sizeof(i);sizeof i。
-
结合性没写的为自左向右 -
仅printf会对实数四舍五入,其他都是直接砍掉。例:float a=1.636; printf("%.2f",a);输出值为1.64。 float a=1.634; a=(int)a; 则a=1。如果没有五入,可能是因为是浮点数出现了不准确,变成了取舍位接近5,但小于5的数。
-
scanf函数:
前一scanf为整型或实型输入,后scanf为字符型输入,中间要跟getchar(),来存放空格/换行,否则字符型变量会得到空格/换行。
前者为字符性输入,后者为整型或实型输入,前者输入后可以直接空格/换行,不会被后面变量得到。
前后两个scanf都是字符型,则和整型实型输入相同。 -
scanf和getchar同时存在:
如果scanf是输入字符型,则两者不论谁在前,中间都不可输入空格/换行,否则会被后者得到。
如果scanf是输入整型或实型,则getchar用法等同于输入字符型的scanf,参考上面scanf函数中一二种情况。 -
switch(a)若a为char型,则case ‘1’:(例),若a为整型,则case 1:。
-
char a[10]=“abc”,b[10]=“012”,c[10]=“xyz”;
strcpy(a+1,b+2);//用b[2]及以后全部来 从a[1]覆盖到完,也就是a[10]={“a2”}
puts(strcat(a,c+1));//用c[1]及以后接在新数组后,也就是a[10]={“a2yz”} -
指针指向变量和数组:
指向变量
定义同时初始化 int a,*p=&a;
先定义后初始化 int a ,*p; *p=a或p=&a;
地址为p,值为a;
指向数组
定义同时初始化 int a[10],p=a或p=&a[0];
先定义后初始化 int a[10],*p; p=a或p=&a[0];
第i个元素地址为(a+i) / (p+i) / &a[i] / &p[i] 值为*(a+i) / *(p+i) / a[i] / p[i]注:数组的a和指针p都是指向地址
C细节考点记录
最新推荐文章于 2021-04-02 23:27:19 发布