彻底弄懂++i&&i++

i++ (后缀增量)先自增后赋值

x=i++,

先将i的当前值赋给x,然后再将i +1

++i (前缀增量)先赋值后自增

x=++i,先将i +1,然后把i增加后的值赋给x

★★★++a increment of one before you use it in an expression(表达式),and a++do it later

(++a在表达式中使用前就+1了,a++要在表达式结束后(;)a才+1

eg

1.

var arr = ['banana', 'apple'];

var a = 0,

      b = 0;

arr[a++]; // print: banana ==> arr[0]

arr[++b]; // print : apple ==> arr[1]

(a在arr[a++]结束(;)后才+1;b在arr[++b](arr[]前,++b后就自增了)

2.

int m=3,n=4,x;‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬

x=m++;‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬

++n;‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬

x=x+8/n;‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬

printf("%d,%d\n",x,m);‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‬‪‬‪‬‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‬

//结果--4,4

3.★

 for(int i=0;i<2;i++)

 {

  printf("%d ",i);

 }

 

 printf("\n");

 

 for(int i=0;i<2;++i)

 {

  printf("%d ",i);

 }

 

printf("\n");

for循环中,i++和++i的最终效果是相同的,两者都会使i的值+1,并且这个增加操作都是在每次迭代循环结束后执行的。

对于for循环,唯一的区别是,面对复杂的数据类型,++i因为不需要创建一个临时变量来储存原始值而相对i++稍微高效些,但对于简单的整型变量,现代编译器通常会优化掉这种差异。(有些程序员倾向于在不需要旧值的情况下使用++i,认为这样更能表达意图,这就是代码风格的问题了)

★这两者之间的区别只有当数值被使用在表达式中才重要(only matters when the value is used in an expression)

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值