int x=10;
printf("%d %d %d\n",x,++x,x++);
printf("%d %d %d",x,x+20,x+30);
打印输出为
12 12 10
12 32 42
为什么第一个printf中的顺序顺序相反,为什么不在第二个printf语句中? 我在一本书中发现C使用反向印刷顺序。
答案 0 :(得分:2)
您的代码有未定义的行为(“UB”)。因此,任何事情都可能发生。
具体来说,违反的规则是,除了确定要写入的值之外,不得在没有序列点的情况下读取和写入相同的变量。