为了账号安全,请及时绑定邮箱和手机立即绑定

最后的结果为什么是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;
}

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

Sophia_hjy 提问者

第一个输出是100
2016-09-10 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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

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

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信