学过编译原理的帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:04:53
j=(i++)+(i++)+(i++);
这是c++中的一个语句 不同的编译系统会出不同的答案
那么不同的编译系统是怎么处理这条语句的
我不要语句的答案 我只想知道不同的编译系统是怎么弄出不同的答案
能不能在具体一丁点

每种语言环境下都存在这样一些容易产生歧义的语句,
如果不想为自己和别人制造麻烦,最好的方式是不要
在自己的程序中使用它们。

为什么要在一个语句中出现三个 i++ 呢?完全可以在
这个语句之前或之后用 i+=3 来实现 给i增加3嘛。
即便是从效率的角度来看,没有道理要用三个i++,也
完全没有这种必要。

祝你好运!

如果i初始值为1,

1,j=(i++)+(i++)+(i++); =====>j=(1+1)+(1+1)+(1+1)=6
2,j=(i++)+(i++)+(i++); =====>j=(2)+(2+1)+(3+1)=9

还要怎么具体啊? 第一个是取原来的i,第二个是累加
这样改没问题了吧??
快给分吧.....

楼上的给的很明白了.

学过编译原理也没必要再解释了.