第1个回答 2010-07-08
搞错答案了吧。
应该输出
2444
5
才对吧,你运行就知道答案了,我这里没有c++编译工具。
输出的时候
i++,先输出再增,所以输出的是2,但i是3
++i,先自增再输出,所以输出4,i此时是4
i 输出4
i++,先输出再增,所以输出的是4,但i是5
i, 输出5
第2个回答 2010-07-08
第一行,从右到左扫描:
1. i++,i先输出,然后自加,所以是2;
2. i,输出第一步的自加后结果3;
3. ++i,i先自加,然后输出,所以是4;
4. i++,i先输出,然后自加,所以是4;
第二行:输出上一步的自加结果5.
第3个回答 2010-07-08
cout表达式是从右向左计算
a=i++,是先把i值赋给a,再自增
b=++i,是先自增,在把值赋给b
若分别用x,y,z,w表示第一个cout的4个式子,m表示第二关式子,则有,
w=2,自增后,i=3,则z=3,
y=++i=4,i=4;x=i++=4,i=5;
m=i=5
第4个回答 2010-07-08
这是编译器从右向左运算的原因。先是最后一个i++;这时候i=2,存储与堆栈中。然后i,这个时候i=3....
最后照顺序输出