int j =(++i)+(++i)+(++i);这行代码在不同的实现中可能会有同的结果,不是推荐使用的!在VC6中结果应为:16过程如下:首先i=3第一个(++i)//先把i自加1,也就变成了4第二个(++i)//又把i自加1,也就变成了5这时这句int j =(++i)+(++i)+(++i);就变成了:int j =i+i+(++i);这时到了问题的关键!是先算左面的i+i,还是先作右边的++i好像在C标准没有定义(我的印象是这样的,也许我记错了!)但在VC中是先算左边的,这样就变成了:int j =5+5+(++i);也就是:int j =10+(++i);下面的问题就简单了,先算()中的++i这是毋庸置疑的...
|