6.1.2
sizeof()静态函数,用来测试括号中数据所占的字节数,比如sizeof(int)==4。
可以出现计算sizeof(1.0+int)==8。
6.1.3
- 对于-a,其补码就是0-a,实际是2的n次方-a,n是这种类型的位数。
- 补码的意义就是拿补码和原码可以加出一个溢出的“零”(溢出的零:1 0000 0000)
6.1.4
- 去除补码格式(去除负数)关键字:unsigned char a=255;%u作为unsigned的输出。%d作为signed的输出。
- 这个时候a+1=0,叫做整数溢出。
6.1.5
- %o表示八进制,%x表示十六进制
6.1.7
- 可以在%和f之间加上.n可以指定小数点输出后几位,这样的是四舍五入的结果。
6.1.8
- float f=1.0f;
- double d=1.0;
6.1.9
- scanf("%c",&c);
-
上述代码的区别:若加上空格容错率高,即使输入中夹带空格也无妨。scanf("%d %c",i,c); scanf("%d%c",i,c);
- a+'a'-'A' 小写转换大写
- A+'A'-'a' 大写转换小写
6.1.10
- 强制类型转换优先级高于四则运算。
6.2.1
- 加上#include<stdbool.h>,就可以用bool型,bool b=true;打印出来是1。
- !age<20 运算的顺序是先单目运算符,再双目运算符。
- 如果表达age>=20,可以这样:!(age<20)。
7.1.3
-
一个好习惯:单一出口(一个函数尽量少的return)
7.2.1
- 函数的原型声明:void sum(int begin,int end); 就是告诉主函数sum函数长这么个模样。
- 其中形式参数的名称可以和定义函数中的不一样。
7.2.2
- 调用函数时输入的值与形参类型不匹配是C语言最大的系统漏洞。比如:
结果为 cheer,2 其中double自动转换为intvoid cheer(int a){ printf("cheer,%d",a); } void main(){ double d=2.4; cheer(d); }