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

int a=100;printf(“%d\n”,a++);运算结果为什么是100?

int a=100;printf(“%d\n”,a++);运算结果为什么是100?

C
bb乐天 2017-03-30 16:57:43
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

因为 a++ 表达式的值就是 a 当时的值 100。

关于自增/减表达式的详细解释请参考我在老问答区的回答:http://www.imooc.com/qadetail/83948


查看完整回答
1 反对 回复 2017-03-30
?
__innocence

TA贡献313条经验 获得超208个赞

明显是100,输出的时候a的值是100,输出之后才+1,你可以在后面再加一句:

printf(“%d\n”,a);这个结果应该就是101了。请采纳


查看完整回答
1 反对 回复 2017-03-30
  • onemoo
    onemoo
    准确地说,其实在 printf 执行时 a 就已经是 101 了,但 printf 要输出的是 a++ 的值,和 a 的值的是否变化没有关系。
?
onlyl_pets

TA贡献3条经验 获得超0个赞

int a=100;printf(“%d\n”,a++);因为此前定义了a的值为100,所以输出a的值为100,那为什么不是101呢?

因为你注意a++中的++是放在a后面的,所以是先输出a,然后a再自增,如果你在下面一行输出a的话就是101了。

那怎样输出101呢,输出语句变成printf(“%d\n”,++a);就可以了,因为++这个自增预算符放在了a的前面,所以是要先自增a的值为101再输出

查看完整回答
反对 回复 2017-03-31
  • 3 回答
  • 0 关注
  • 3271 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信