C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/20 11:02:15
![C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?](/uploads/image/z/7912875-3-5.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E7%9A%84%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%9Ai%3D3%EF%BC%9B+s%3D%28%2B%2Bi%29%2B%28%2B%2Bi%29%2B%28%2B%2Bi%29%3B+%E8%AF%B7%E9%97%AE%EF%BC%9As%3D%3F%E6%8C%89%E7%90%86%E8%AF%B4%E5%BA%94%E8%AF%A5%E6%98%AF15%E7%BB%93%E6%9E%9C%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E6%98%AFs%3D16%E5%91%A2%3F)
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了.