++,– 操作符的本质
++,– 操作符使用分析
·C 语言中只规定了 ++ 和 – 对应指令的相对执行次序
·++ 和 – 对应的汇编指令不一定连续运行
·在混合运算中,++ 和 – 的汇编指令可能被打断执行
++ 和 – 参与混合运算结果是不确定的
·贪心法:++,– 表达式的阅读技巧
- 编译器处理的每个符号应该尽可能多的包含字符
- 编译器以从左向右的顺序一个一个尽可能多的读入字符
- 当读入的字符不可能和已读入的字符组成合法符号为止
空格可以作为 C 语言中一个完整符号的休止符
编译器读入空格后立即对之前读入的符号进行处理
例子 17-2:
include “stdio.h”
int main()
{
int i = 0;
//int j = ++i+++i+++i; //++i++ ==>1++ 常量不能自加
int a = 1;
int b = 4;
int c = a++ +b;
int* p = &a;
b = b/ *p;
printf("c= %d\n",c);
printf("a= %d\n",a);
printf("b= %d\n",b);
return 0;
}
输出结果:
c= 5
a= 2
b= 2
小结:
·++ 和 – 操作符在混合运算中的行为可能不同
·编译器通过贪心法处理表达式中的子表达式
·空格可以作为 C 语言中的一个完整符号的休止符
·编译器读入空格后立即对之前读入的符号进行处理
狄泰软件学院课程