C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 21:56:58
C语言中的一个问题:i=3;s=(++i)+(++i)+(++i);请问:s=?按理说应该是15结果为什么会是s=16呢?C语言中的一个问题:i=3;s=(++i)+(++i)+(++i);请问:s=

C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?
C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?
按理说应该是15
结果为什么会是s=16呢?

C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?
++i 是i先加1,然后加1 后的结果进行下一步运算.
1、第一个++i 和第二个++i 同时执行得到 i = 5.
2、然后5+5 = 10.
3、再将10 与第三个++i 相加.
4、此时i = 6所以最后i = 16.
你应该会对第一步不解.做加法时要先求两边表达式,所以前两个++i 是同时运行的.因为只有一个变量i ,所以运算结果只能存一个,即最后的结果,两个++i 执行后的结果就是 i= 5,所以两个5相加就成了10了.