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

来源:3-3 自增与自减运算符

慕运维2356823

2019-10-28 16:52

无论是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

难道不矛盾吗?

写回答 关注

6回答

  • 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。

    慕码人201...

    听不懂

    2019-11-18 19:31:18

    共 1 条回复 >

  • 慕勒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;

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926209 学习 · 20797 问题

查看课程

相似问题