永发信息网

在VC6.0中编译以下程序 int i=3,x; x=(++i)+(++i)+(++i); 为什么结果显示是16而不是15? i 是如何变化的?

答案:2  悬赏:40  手机版
解决时间 2021-02-28 05:40
  • 提问者网友:人生佛魔见
  • 2021-02-27 20:03
在VC6.0中编译以下程序 int i=3,x; x=(++i)+(++i)+(++i); 为什么结果显示是16而不是15? i 是如何变化的?
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-27 20:45
x=(++i)+(++i)+(++i);
自左至右
首先++i;i=4;
然后到第二个++i;i=5; i+i=5+5=10
最后一个++i; i=6; 10+i=10+6=16
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-02-27 20:58
++i 表示变量 i自加1后参与运算。如果1个运算式里只有一个++i那很容易理解。 但如果有多个++i,会根据不同的编译器,产生不同的编译结果。所以最好不要在一个运算式里使用同多个++i。 我在很多中国的C++书里看到过类似的题目。当时也百思不得其解,因为我的编译器产生的结果和书上的答案还不一样。现在想想,这些题目出的还真是搞笑。 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯