帮我看个很简单的C++程序

来源:百度知道 编辑:UC知道 时间:2024/06/10 07:27:41
#include<iostream>
using namespace std;
void main()
{ int i=5,j=5;
i++;
++j;
cout<<i<<" "<<j<<" "<<i++<<" "<<++j<<endl;

} 结果是多少,我的电脑算出来是7 7 6 7,好像不对吧????
教科书上的答案是6 6 6 7,编译器的不同怎么就会造成顺序不同呢

结果正确啊
int i=5,j=5;
i++;
++j;

此时i=6,j=6

cout<<i<<" "<<j<<" "<<i++<<" "<<++j<<endl;
记住表达式的顺序是从右往左计算
先算++j 为7,此时j也为7
再算i++为6,i为7
所以结果7767

在同一个语句中使用多个自增或自减运算符,其顺序可能会因为编译器的不同而不同,所以尽量避免这样的写法

楼上说的是,不同的编译器出来结果不一样,你只要知道++i,和i++有什么区别就行了

这是因为cout<<i<<" "<<j<<" "<<i++<<" "<<++j<<endl; 右结合