i++的问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 14:21:16
#include <iostream.h>
void main()
{
int i;
i=3;
cout<<"i++="<<i++<<","<<"i="<<i<<endl;
}
不是先执行i++的吗。那么结果是4 3才对
怎么结果是3 3
而把++i替换i++能做出.4 3
是因为i++是先赋值再加加。
我怀疑是因为i++直接赋值于"i++="=i然后直接输出了。没做+1的计算。
求大虾讲解
正如3楼所说的。我用不同的编译器做出了不同的答案。
VC6.0貌似不支持COUT内的某些运算。运算顺序也是右-->左.

假设i=3;
i++是后加,如果你要取(i++)的值,此时i已经是4,而结果应该是i原来的值3,
所以你上面的语句cout<<"i++="<<i++;输出的结果应该是i的值,

++i是先加,如果你要取(++i)的值,此时i已经是4,结果应该是i现在的值4。

楼上说的结果是3 4 和4 4 ,这个要看C++的编译器了,如果是从左往右编译结果就是楼上所说的3 4 和4 4,如果是从右往左编译那就是3 3 和4 3

i++和++i是不同的,i++是赋值后在对自己加1,而++i是先自己加上1后在传给其他的。所以"i++="<<i++<<",仍旧是3。

我怀疑你搞错了!
我做的结果为:3 4

i++,先输出3,然后做++
所以第二个输出为4

++i,先++再输出

就是
cout<<"i++="<<++i<<","<<"i="<<i<<endl;
输出为 4 4