先看一段代码:
#include<iostream>
using namespace std;
int main()
{
int i,j;
i=0;j=5;
i=(j++)+(j++);
cout << i << endl;
i=0;j=5;
i=(j++)+(++j);
cout << i << endl;
i=0;j=5;
i=(++j)+(j++);
cout << i << endl;
i=0;j=5;
i=(++j)+(++j);
cout << i << endl;
return 0;
}
结果分别为11,12,13,14
i=0;j=5;
i=(++j)+(j++)+(++j);
cout << i << endl;
这个结果为21
请问其中结果为13和21的是怎么得出来的?
(++j)的时候j等于6,(j++)此时括号里面j等于6,等到第一个表达式(j++)的时候上一个j就等于7最后一个(++j)括号里面的j=7最后还要赋值给j此时又是一个表达式最后一个(++j)中的j就是8,所以是6+7+8=21
进行j++的时候先赋原值 等到下一个表达式的时候才会增,++j是先增再运算。