++i和i++的区别详解

++i和i++在某些地方的差异,主要在实现的方式导致的

  1. a = i++; 类似于:
a = i;
i = i + 1
  1. a = ++i; 类似于:
i = i + 1;
a = i;

i++和++i的 最重要的区别就是 +1和返回值顺序从效率上来说++i比i++来的更有效率,因为i++多声明了一个过渡的变量。如下所示:

  • 对于i++的实现是:
int temp;
temp = i;
i = i+1;
return temp;
  • 而++i的实现是:
i = i+1;
return i;

比如printf("%d",i++);是先输出i值随后i自加,而printf("%d",++i);中i先加1再输出,即输出的结果为i大1的数字。


对于for循环:
for(operation1;operation2;operation3)
{
//Do Something
}
循环是按下面的顺序来执行的:

  1. operation1
  2. operation2
  3. //Do Something
  4. operation3

因此i++与++i在单独的语句中结果是一样的。
简单而言:
++i 在 i 存储的值上增加一并向使用它的表达式 返回新的, 增加后的值; 即先加再返回值。
而 i++ 对 i 增加一, 但返回原来的是未增加的值。即先返回再加。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值