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

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

#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;
}

提问者:Sophia_hjy 2016-09-10 11:33

个回答

  • 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

  • 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