i++与i=i+1 一样吗可以互换吗

原文链接:https://zhidao.baidu.com/question/84652577.html?qbl=relate_question_6&word=short%20i%20%3D%201%3B%20i%20%3D%20i%201%B6%D4%C2%F0%2Cshort%20i%20%3D%201%3B%20i%20%3D%201%3B%B6%D4%C2%F0

在讲bai课时老师会说“i++是i=i+1的简略du形式”。不过很遗憾的告诉zhi你,不是任何时候都可以互换。

当一条语dao句只有“i=i+1”时,此时是可以互换的。

但是当需要用到语句的返回值时,就要小心了。i++返回值为i,然后将i+1;i=i+1返回的是i+1(赋值语句之后的i值):如

if(i++) a=0;

这条语句是说“如果i不等于0,a赋值为0,并且i进行加一操作”,此时等价于:

if(i!=0){i++;a=0;}(注意,i++操作是在判断过if条件后做的,不是条件成立后才做,这里的写法结果没错,但严格来说不等价,是错误的,只显示操作的先后关系)

if(i=i+1) a=0;

这是说“首先将i加1,然后看i是否为0,如果不为0,a赋值为0。此时等价于:

i=i+1;

if(i) a=0;

有人会给你举i++和++i同时出现在一条语句中的例子。个人认为,那种例子没有必要看,也没有必要弄懂。因为那种例子“没有”正确答案(编译器不同,答案不一样),只要记得不要那么使用就对了。

作为初学者,应该要知道i++的真正含义,不要单纯记如“它和i=i+1一样”这种结论。你能提这种问题,就比这里其它要求写作业的人好多了~~(那种问题我是不回答的:P)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值