问答详情
源自:3-3 自增与自减运算符

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

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

提问者:showkaname 2015-09-17 14:54

个回答

  • qq_仰望摩天轮_0
    2015-09-17 15:10:55
    已采纳

         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


  • 小茗同学com
    2017-02-10 17:11:07

    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的值,感觉好乱

  • showkaname
    2015-09-29 11:22:57

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

  • 无敌小灰灰
    2015-09-24 22:56:05

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

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

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


  • showkaname
    2015-09-17 15:41:13

           嘻嘻,好像有点明白了。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。是这么理解的么?