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

自增与自减运算符 中的例题,printf("%d\n",a+1);中,为什么这里并不改变a的值?输出的不应该是a+1 么?为什么输出的值没有变。麻烦有人帮忙下么?谢谢啦。

      printf("%d\n",a+1);

正在回答

5 回答

     int a=100;                                     

    printf("x=%d\n",a++);                 //输出值为100   ,  a的值为101

    printf("x=%d\n",++a);                //输出值为102  ,  a的值为102

    printf("x=%d\n",--a);                 //输出值为101  ,  a的值为101

    printf("x=%d\n",a--);                //输出值为101  ,  a的值为100

    printf("x=%d\n",a+1);              //输出值为101  ,  a的值为100

    printf("x=%d\n",a);                 //输出值为100   ,  a的值为100


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

showkaname 提问者

非常感谢!感谢么么,加好友?
2015-09-17 回复 有任何疑惑可以回复我~

printf("x=%d\n",a++);                 //输出值为100   ,  a的值为101

    printf("x=%d\n",++a);                //输出值为102  ,  a的值为102

    printf("x=%d\n",--a);                 //输出值为101  ,  a的值为101

    printf("x=%d\n",a--);                //输出值为101  ,  a的值为100

    printf("x=%d\n",a+1);              //输出值为101  ,  a的值为100

    printf("x=%d\n",a);                 //输出值为100   ,  a的值为100

为啥输出值不是a的值,感觉好乱

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

这是我看到一个大神的理解,转发个图片给你看看:http://img1.sycdn.imooc.com//560a03e20001277e09880421.jpg

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

怎么感觉你写错了答案!!求解:

--a 输出101,a=101;不是98,输出98?

a--输出101,a=100(我的答案:100,a=99


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

showkaname 提问者

你看一下例题里面的运行结果。
2015-09-29 回复 有任何疑惑可以回复我~

       嘻嘻,好像有点明白了。a+1是不会改变a的值的,会改变值的是自加和自减,但是a+1会使输出值发生变化。每次都是输出值和变量值给混了。(1)a++,是先输出100,后面再把a的值+1,就是101(2)然后是自加,就是102,然后输出102(3)自减101,输出101,(4)先输出101,自减就是100 (5)a不变100,输出加一(6)最后输出a=100。是这么理解的么?

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

qq_仰望摩天轮_0

嗯嗯,我就是懒得写字,
2015-09-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

自增与自减运算符 中的例题,printf("%d\n",a+1);中,为什么这里并不改变a的值?输出的不应该是a+1 么?为什么输出的值没有变。麻烦有人帮忙下么?谢谢啦。

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