为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
qq_凪_1 2017-08-16 14:40:49
#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;}
查看完整描述

3 回答

?
Arctic丶

TA贡献1条经验 获得超1个赞

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

查看完整回答
1 反对 回复 2017-08-17
?
我是新手_请多指教

TA贡献140条经验 获得超79个赞

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

查看完整回答
1 反对 回复 2017-08-16
?
angie

TA贡献56条经验 获得超8个赞

那你知道 cout << -a++ << endl; 为啥是 -2 么?

这 ++ 和 -- 运算符后置的时候,要等到表达式运算结束才进行的;所以,第四个输出语句后,a 的值为2;到了第五个输出语句,++要等到语句结束,所以要先输出 -a,也就是 -2,但 a 的值还是 2啊,之后 a++,a 就变成了 3;下同

查看完整回答
反对 回复 2017-08-16
  • 3 回答
  • 0 关注
  • 1544 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信