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

例题代码中a+1是不会改变a的值但是为什么输出结果不可以是a+1偏要输出a的值?

a+1为什么不输出a+1的值而只输出a的值、???

正在回答

2 回答

http://img1.sycdn.imooc.com//5969bca7000133c704060208.jpg

http://img1.sycdn.imooc.com//5969bcb2000121a000990171.jpg

是这道题吧,这里并不改变a的值,指的是这个a是最开始赋值的a的值100,输出a+1得到101

1 回复 有任何疑惑可以回复我~

输出的确是是a+1的值

首先 a=100;

printf("%d\n",a++);       //先打印a的值,为100;然后a+1,值为101;

printf("%d\n",++a);      //先a+1,此时a为102;然后打印a的值,为102;

printf("%d\n",--a);       //先a-1,此时a为101;然后打印a的值,为101;

printf("%d\n",a--);        //先打印a的值,为101;然后a-1,为100;

printf("%d\n",a+1);        //打印a+1的值,为101;此时a的值不变还是100;

printf("%d\n",a);            //打印a的值,为100;               



7 回复 有任何疑惑可以回复我~
#1

Parboyoung 提问者

a的值在上面的时候不会改变吗?
2017-07-17 回复 有任何疑惑可以回复我~
#2

长_歌 回复 Parboyoung 提问者

在上面会。因为a++等同于a=a+1,其他类似。而a+1是一个表达式,表达式的结果用于打印,这里a的值不会因为表达式+1而+1.
2017-07-19 回复 有任何疑惑可以回复我~
#3

Parboyoung 提问者 回复 长_歌

我的意思是printf中第五个里的a的值为什么不是第四个printf中a--的值,这里a的值不是改变了吗?
2017-07-19 回复 有任何疑惑可以回复我~
#4

长_歌 回复 Parboyoung 提问者

第五个a的值确实是第四个a的值啊。但是第五个printf输出前后a的值一直就是第四个printf输出后的a值了,没有发生变化
2017-07-22 回复 有任何疑惑可以回复我~
#5

长_歌 回复 Parboyoung 提问者

第五个printf中的a值,是第四个printf中打印之后的a值,为100。第五个Printf打印“a+1的值”,为101
2017-08-06 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

例题代码中a+1是不会改变a的值但是为什么输出结果不可以是a+1偏要输出a的值?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信