最后的结果为什么是100??不应该是101??

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

Sophia_hjy

2016-09-10 11:33

#include <stdio.h>
int main()
{
    int x=100;
    printf("%d\n",x++);
    printf("%d\n",++x);
    printf("%d\n",--x);
    printf("%d\n",x--);
    printf("%d\n",x+1);
    printf("%d\n",x);
    return 0;
}

写回答 关注

3回答

  • ITBOYUC
    2016-09-10 12:29:14
    已采纳

    int x=100;                                     输出的数       x的值
        printf("%d\n",x++);   1                 101             101
        printf("%d\n",++x);   2                 102             102
        printf("%d\n",--x);     3                 101             101
        printf("%d\n",x--);     4                 101             100
        printf("%d\n",x+1);   5                  101             100
        printf("%d\n",x);       6                  100            100

    1-4行输出完后,x的值都变了,而第5行输出完,x的值没有变,还是100,所以最后输出的x的值是100

    Sophia...

    第一个输出是100

    2016-09-10 12:43:43

    共 1 条回复 >

  • YoLor
    2016-09-10 12:12:28

    #include <stdio.h>
    int main()
    {
        int x=100;
        printf("%d\n",x++);
        printf("%d\n",++x);
        printf("%d\n",--x);
        printf("%d\n",x--);
        printf("%d\n",x+1);//问题出在这儿,你这只是输出一个x+1的数,而不是对x进行更改,,若你想输出100,102,101,101,100,101,那么正确的应该是x++,若是后面都是101,那就是++x,按照计算机的思维,而不是我们规定的人的思维思考//
        printf("%d\n",x);
        return 0;
    }

  • Moncle
    2016-09-10 12:09:31

    因为之前四个输出相当于是x=x+1和x=x-1;改变了x的值

    第五个输出并没有把x+1的结果赋值给x,输出结果是101但是没有改变x的值

    所以最后一个输出依旧是100

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题