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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/09 06:23:11
C语言中的一个问题:i=3; s=(++i)+(++i)+(++i); 请问:s=?按理说应该是15结果为什么会是s=16呢?
xŒN@_ePlIt׍!E1X hƹa+xۋqef:s̹~i*ޔ#nzì]tmcRgYm)ї# : P6evAO0nGT]E|XFj{7'Cڇggҩ}t8(QSgO-/! V-{N8fX蠼9Rvpfu-Qy:>әTz<JXB %w0~È$\CpnE01((I&A)1½A}mqnt([]9¤%o0Kx1Oh>D!ԛH=0 òDLS%eJ}t1\0qIh2%g3[;

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了.