{
int x = 5;
//cout << x++ << endl;
cout << 2 * x++ << endl << 3 - ++x;//▲▲▲
int y = 1;
int u = 1;
//int q = 2 * ++y;
//cout << "\nthe value of q = " << q << endl;
cout << endl << 2 * ++y << endl;
//int w = 2 * u++;
//cout << "the value of w = " << w << endl;
cout << 2 * u++ << endl;
}
12
-4
4
2
a++ 是先返回原本的值, 再对a加1
++a 是先对a加1 再返回加1后的值
cout 和printf 一样是从右往左计算表达式.
cout << 2 * x++ << endl << 3 - ++x; 中是 先计算 ++x; x先l加1变成6
再计算 2 * x++ 时x已经是6了, 2*6=12,之后x再加1
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
cout << 2 * x++ << endl << 3 - ++x这一句,执行顺序是:
(1)++x,x变成6
(2)2 *x,结果是12
(3)cout << 2*x,显示12
(4)执行x++,x变成7
(5)执行3-x,结果是-4,显示-4
++在变量前面的时候,先计算++。++在变量后面的时候,最后再计算++