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

怎么C语言中++a比原先定义的值a大2,不是很能理解,求解析。

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

正在回答

5 回答

你可以这样认为,++a比较自私,先干完自己的事儿,再干别人的事儿,所以,++a就是先自身加1,再printf;

而a++正好相反,他先干别人的事儿,完了自己再加1。

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

qq_倾耳倾听_3 提问者

非常感谢!
2018-07-11 回复 有任何疑惑可以回复我~
#2

慕仰2467246

比喻好棒
2018-07-14 回复 有任何疑惑可以回复我~

a标签里的“首页”之间的空格是怎样敲出来的,我敲两个空格太短,两个tab又太长,求解释

jyfgcjimyapdzgspgdvmbuhlimzyynnlezculijionfucxcosewqrfiukrrfmawzssmehmoiatghsinsggiaqkwgujugfrvdzbzpdwrihvrssoxzfrzgsulkbujcdcxih

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

#include <stdio.h>
int main()
{
    int a = 100;
    printf("x=%d\n",a++);//这里a先取值为100被输出,然后a再增加1变成101               (输出100)
    printf("x=%d\n",++a);//a为101,a先增加1变成102,然后被输出                             (输出102)
    printf("x=%d\n",--a);//a为102,a先自减1为101,然后被输出                                   (输出101)
    printf("x=%d\n",a--);//由于上边知a为101,a先取值为101被输出,然后自减为100   (输出101)
    printf("x=%d\n",a+1);//由于上边知a为100,a+1=101,输出为101                         (输出101)
    printf("x=%d\n",a);//上一步中知a=100,既没有自增也没有自减a输出依旧是100      (输出100)
    return 0;
}

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

慕婉清0113162

解释的太好了
2018-07-14 回复 有任何疑惑可以回复我~
#2

qq_音符协奏曲的Orz_0

第四行已经自减为100了,为什么输出值是101
2018-07-17 回复 有任何疑惑可以回复我~
#3

慕尼黑0554995

现在懂了
2018-07-25 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5b44905100010b8605310197.jpg123

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

应该是一步一步按顺序来执行代码 到这里时printf("x=%d\n",x++);执行完后x就变成2了 所以下面printf("x=%d\n",++x);先增1,在2的基础下加一就是3了


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

举报

0/150
提交
取消

怎么C语言中++a比原先定义的值a大2,不是很能理解,求解析。

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