准大一 请问最后的输出结果为什么是-3?

#include <iostream>

using namespace std;

void main()

{

int a = 2;

cout << a++ << endl;

cout << a-- << endl;

cout << ++a << endl;

cout << --a << endl;

cout << -a++ << endl;

cout << -a-- << endl;


}

http://img.mukewang.com/5993e8e000019f0117570796.jpg

qq_凪_1
浏览 1547回答 3
3回答

Arctic丶

需要先清楚a++,和++a的区别,a++,是做完上述输出操作后再进行自加,而++a是先自加再进行输出操作,减也是同理的,这样就容易看多了

我是新手_请多指教

因为上一个 cout << -a++ << endl的值是负2,负号只是参加运算的一个符号,并不影响自身变量a原有的值,++在前就是先自增1再参与运算,++在后就是先参与运算后自增,

angie

那你知道 cout << -a++ << endl; 为啥是 -2 么?这 ++ 和 -- 运算符后置的时候,要等到表达式运算结束才进行的;所以,第四个输出语句后,a 的值为2;到了第五个输出语句,++要等到语句结束,所以要先输出 -a,也就是 -2,但 a 的值还是 2啊,之后 a++,a 就变成了 3;下同
打开App,查看更多内容
随时随地看视频慕课网APP