为什么运行结果是100 102 101 101 101 100

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

外太空

2016-06-27 10:07

#include <stdio.h>

int main()

{

int a=100;

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

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

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

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

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

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

}


写回答 关注

4回答

  • LinkLink
    2016-06-27 11:11:44
    已采纳

    int a=8;

    a++:先使用变量a(a=8),再做自增运算+1(a=9);

    ++a:先做自增运算+1(a=9),再使用变量a(a=9);


    eg:

    int a=7;

    int b=a++ + ++a;//b=7+9

    printf("%d %d\n",a,b);//9,16

    int c=++a + a++;//c=10+10

    printf("%d %d",a,c);//11,20


    又是....你

    慕娘9403...

    eg中最后一个a的值不应该是10吗,为什么是11?

    2016-07-18 11:29:03

    共 7 条回复 >

  • PhoenixKnow
    2016-07-01 21:01:03

        printf("%d\n",a++);    //先输出100 再自增,a=101,但输出值是100

        printf("%d\n",++a);    //上一行的a=101,先自增1变成102,然后输出就是102

        printf("%d\n",--a);    //上一行的a=102,先自减1变成101,然后输出为101

        printf("%d\n",a--);    //上一行的a=101,先输出101,自减1以后a=100

        printf("%d\n",a+1);    //上一行a=100,进行运算a+1=100+1=101=输出值

    鸢尾涵

    还这样叠这算?

    2016-08-07 20:39:54

    共 1 条回复 >

  • 赵法智
    2016-06-27 21:28:38

    #include <stdio.h>

    int main()

    {

    int a=100;                        //初始值是100

    printf("%d\n",a++);      //输出是100,a的值变成了101(因a++是先输出,后运算)

    printf("%d\n",++a);        //输出是102,a的值变成了102(因++a是先运算,后输出)

    printf("%d\n",--a);        //输出是101,a的值变成了101(原因同上)

    printf("%d\n",a--);       //输出是101,a的值变成了100 (原因同a++)

    printf("%d\n",a+1);     //输出的值是101,a的值没有改变,a是100(因要求输出的值是a+1=100+1=101,但是a并没有自增)

    printf("%d\n",a);         //输出的值是100,a的值也是100

    }


    鸢尾涵

    我还是没懂 不是说a=100后面就算自增那也应该是101为什么是102

    2016-08-07 20:38:59

    共 3 条回复 >

  • 汪诺诺3559589
    2016-06-27 10:23:44

    第四行 a=100

    第五行 a先输出再自加 输出是100,a=101

    第六行 a先自加再输出 输出是102,a=102

    第七行 a先自减再输出 输出是101,a=101

    第八行 a先输出再自减 输出是101,a=100

    第九行 a加1再输出 输出是101,a=100

    第十行 a直接输出 输出是100,a=100

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题