没想到啊,没想到:
printf函数对参数的计算顺序是从右往左的!
我不禁想问一句,这么坑爹的事情,书里居然没有写过。还是我看书不仔细,没有找到?(回头,在自己翻翻那本c语言编程)
于是下面的程序结果:
#include <stdio.h> int main() { i=0; printf("i=%d,now i=%d\n",i,i++); return 0; }
正确的输出结果:
i=1,now i=0
计算错误的小盆友,可以重新翻书了。
另外:不同编译器,甚至不同版本的GCC输出结果都不同。
编译器对代码会有不同的优化方案,++和--后缀只要知道含义就行了,实际写代码时用的不多。