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

对例题的a++和a--和--a的结果不解

对例题的a++和a--和--a的结果不解

提问者:Muzeebob 2015-12-04 20:12

个回答

  • 请叫我大树
    2015-12-04 20:52:24
    已采纳

    我改一下代码比较好理解

    #include <stdio.h>

    int main()

    {

        int a =100,b,c,d,e;

        b=a++;  //①

        c=++a;  //②

        d=--a;  //③

        e=a--;   //④

        printf("%d\n",b);

        printf("%d\n",c);

        printf("%d\n",d);

        printf("%d\n",e);

        return 0;

    }

    事实上它程序运行时是这样的,进行①时可分为b=a;a=a+1;  此时得b=100   a在程序中的默认值则变为了a=101

    然后②时 可拆成 a=a+1; c=a;  即先运算再取值,所以a=101+1=102  c=102    进行③时同理此时得a再程序中是102的,进行a=a-1;b=a; 所以a=101  b=101然后进行④时为e=a; a=a-1;  所以得e=101  a=100 


  • 流浪_老
    2015-12-04 22:56:41

    a=100  b=a++;第一个 先用a的值赋给b  然后a在自增  a=101 b=100 

     第二个   c=++a;先自增 再把值赋给c  因为a在上一个式子已经等于101了所以自增后a=102  c=102 

     第三个  d=--a; 先自减  再赋值给d   a=101   d=101

     第四个 e=a--;先赋值给e 再 自减    e=101   a=100 



    ++a --a因为运算符号在前 所以先 自增 或自减 在使用a的值   a--   a++  因为运算符在后面 先使用 在 自增或自减