(1)转义字符常用不能用符号表示的特殊字符(就是一个ASCLL码值) \n \r \\ \b \f \' \" \a \o \ddd \xhh
(2)%结果的正负与被除数相同
(3)&单独使用看这两个数的二进制值,如果同为1则表示1,否则表示0 | 单独使用看这两个数的二进制值,如果同为0则表示0,否则表示1 ^ 单独使用看这两个数的二进制值,如果不同则表示1,否则表示0 ~ 就是直接二进制取反
(4)>> <<表示这个数的二进制向右向左移动2位,向左移也可以借此看成扩大了2的n个倍数,向右移则反之,注意向右移很有可能不是简单的缩小,比如5的二进制101如果、>>2,得到的值是1,不是1.25。
(5)强制类型转换只需要在变量前面直接加“(类型)”比如:(int)a 尽量让内存小的转化成内存大的类型,不然内存部分的值会有缺失
(6)%u是无符号整型 unsigned (因为把符号位删去了,所以使正数范围扩大,同时负数输入就会因此有很大的偏差)
(7)printf中的 %5d 的意思是如果超出了5个数字不管,如果低于5个数字,则用空格补齐(空格在左,%-5d的区别只是空格在右。%7.2的意思是算上小数点一共会有7个数,且小数点后面一定补齐两位。
(8)
(9)scanf(“%d%d”,&a,&b) 输入时5(空格)6可以得到结果 scanf(“%d %d”,&a,&b) 输入时5(空格)6可以得到结果 因为%d只会接受整数类型,空格不会接收
scanf(“%d%c”,&a,&b) 输入 5c 才可以正常可以得到结果 如果是5(空格)c是得不到想要的结果的,因为(空格)有ASCLL码值,会进入%c里面
(10)单目/三目运算符都是从右到左计算的,复合赋值运算符也是从右到左计算,其他的都是从左向右计算。