printf("%d\t%d\t%d\t%d\n",++i,--i,i--,i++);
这个语句涉及到副作用和顺序点的问题,分号;是一个顺序点,在顺序点之前
所有运算符都要执行完,但是执行顺序会根据编译器的不同而有可能不同,
举个例子:
int a=5;
pintf("%d %d",a,a*a++);
a++可能在printf()函数执行完之前加,但也可能在printf()函数执行完后再加
但是由于;顺序点所以a++必须在下一条语句执行前执行,在不同编译器中会有不同结果,
可能输出
5 25
也可能输出
6 25
甚至可能输出
6 30
建议参考《C primer plus》第五章