运算符
运算符的优先级要熟悉
逗号运算符最后的结果是最后一位,如
x =(a=2,b=3,a+b)
结果为 5
a++=b++;是不可以的
++a=++b;是可以的
a=5,b=10;
a=b++;
printf("%d,%d", a, b);
//结果是 10,11
a++的具体运算过程为
int temp=a;
a=a+1;
return temp;
++a 的具体运算过程为
a=a+1;
return a;
后置自增运算符需要把原来变量的值复制到一个临时的存储空间,等运算结
束后才会返回这个临时变量的值。所以前置自增运算符效率比后置高。
输入输出
1. scanf 和 gets 的区别?
2. 怎么用 scanf 接收 i 个数据?
3. 抑制符’*’?
printf 是从右向左的,例:
int arr[] = { 11,12,13,14,15 };
int *ptr = arr;
*(ptr++) += 100;
printf("%d %d", *ptr, *(++ptr));
//输出 13 13
printf 的特殊用法
char str[]="hello";
printf(str);
原码、反码、补码
要知道原码反码补码的关系,会已知一个正数求他的反码、补码;已知一个负数
求他的反码、补码就可以了。
预处理
1. 程序的编译过程分几个部分?
2. 宏定义是在编译的哪个阶段被处理的?
3. 怎么用预处理指令 #define 声明一个常数 ,用以表明 1 年中有多少秒(忽
略闰年问题)?
4. 预处理标识#error 的目的是什么?
关键字