#include <stdio.h>
int main()
{
int i;
i=1;
printf("%d,%d,%d",++i,++i,i);
return 0;
int main()
{
int i;
i=1;
printf("%d,%d,%d",++i,++i,i);
return 0;
}
gcc编译执行结果为3,3,3.
vc运行结果为3,2,1.
gcc编译器从右往左读,不过会把printf中的语句一次性读完,先运行两次++i得到i=3,然后输出,这时两个++i就被当作i输出。
vc编译器也是从右往左读,不过是执行一步输出一步。
不过这两个结果都是对的。