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

这些加加减减的很疑惑

为什么刚才在解析中说:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

那么为什么下面举的这个例子第一个就和解析里面说的不一样啊,如果按照a++和++a都等同于a=a+1的话,那例题中第一个答案应该输出的是101才对啊,因为a=100,那么a++=a+1 把a=100代入进去算出来不就是101吗?为何例题输出的是100?

正在回答

2 回答

i++ 是先返回 i 的值,再 i = i + 1;

++i 是先 i = i + 1;再把 i 值返回。

以示例代码为例:

int x = 0;    // x 值为 0
// 调用printf时,printf想要知道第二个参数的值,这第二个参数就是“++x”
// 那么会先把x的值加上1(x为1),再把x的值(就是1)返回给printf用
printf("x=%d\n",++x); 
// 这一句printf同样想知道它的第二个参数的值,就是“x++”
// 那么会先把x的值返回给printf用(值还是1),再把x的值加上1(这时i为2)
printf("x=%d\n",x++);
// 也就是说如果再次取x的值的话,就会得到2
printf("x=%d\n", x);  // 这一句会输出2


   


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

王家涛IT 提问者

非常感谢!
2015-06-30 回复 有任何疑惑可以回复我~
#2

onemoo 回复 王家涛IT 提问者

http://www.imooc.com/qadetail/83948
2015-06-30 回复 有任何疑惑可以回复我~
#3

onemoo 回复 王家涛IT 提问者

我在这里的回答要更详细 http://www.imooc.com/qadetail/83948
2015-06-30 回复 有任何疑惑可以回复我~

这个答案不错:http://zhidao.baidu.com/question/424256398645419812.html?qbl=relate_question_0&word=i%2B%2B%BA%CD%2B%2Bi%B5%C4%C7%F8%B1%F0&optimi=4

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

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

进入课程

这些加加减减的很疑惑

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