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

a++和++a的值为什么不相同呢?

无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1。

无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

printf(x=%d\n,x++);         输出值为100

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

难道不矛盾吗?

提问者:慕运维2356823 2019-10-28 16:52

个回答

  • weixin_慕姐5417392
    2019-11-16 20:26:32

    #include <stdio.h>
    int main()
    {
        int x = 100;
        printf("x=%d\n",x++);
        //这里先取值在加1!
        printf("x=%d\n",++x);
        // 这里加1后 又加1再取值
        printf("x=%d\n"--x);
        // 减1后取值
        printf("x=%d\n",x--);
        // 取值后减1
        printf("x=%d\n",x+1);
        // 减1后加1
        return 0;
    }

  • qq_慕后端8321733
    2019-11-01 22:34:37

    这个题目是告诉你运算方是向由右至左,也一定要有值才能运算 ,如:b++>a等同 b >a ,++b>a等同 b+1+1>a。

  • 慕勒8289148
    2019-10-28 17:11:12

    printf("x=%d\n",x++);这个输出的是增大前的,输出之后让他+1

    printf("x=%d\n",++x);这个是先让他+1,再给他输出来

    a=0;a++;或++a;都是让a+1,在分号处表示已经执行完了整个过程


  • qq_慕桂英4238728
    2019-10-28 17:10:50

    a++是先把a的值输出再去加一

    ++a是把a的值先加一在输出

    你这个例子应该是100 和101

  • qq_EDSS丿显卡_0
    2019-10-28 17:10:11

    a++是先赋值给a再在a上加1:++a是先在a上加1再赋值给a

  • 慕九州2415120
    2019-10-28 17:03:45

    x++是先赋值再+1;++x是先+1再赋值给x;