C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/06 05:30:56
C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?
按理说应该是15
结果为什么会是s=16呢?
按理说应该是15
结果为什么会是s=16呢?
![C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?](/uploads/image/z/5396400-0-0.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)
++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了.
1、第一个++i 和第二个++i 同时执行得到 i = 5.
2、然后5+5 = 10.
3、再将10 与第三个++i 相加.
4、此时i = 6所以最后i = 16.
你应该会对第一步不解.做加法时要先求两边表达式,所以前两个++i 是同时运行的.因为只有一个变量i ,所以运算结果只能存一个,即最后的结果,两个++i 执行后的结果就是 i= 5,所以两个5相加就成了10了.