c语言的+

第一   i++与++i的区别

对于变量i来说都会在原来基础上加1的,重点区别于式子本身的值;

i++式子值为i原来的值,就是通俗说的“先赋值再加1”;得到一个i的值

而++i式子值为i变化后的值,也就是“先加1后赋值”;得到i 这个变量
i++和++i相同之处是i都自增一,不同是i++表达式的值就是i,因为i++是先赋值后加值
而++i表达式的值是i+1,因为++i是先加后赋值
如: 

int a = 1; 
int b = a++; //此时先运算b=a,再a++,故b=1,a=2 
int c = --a; //此时先--a,再运算c=a,故c=1,a=1

第二 C语言中的+=
这个是自加运算符,表示左值自增右值那么多
比如,a+=5,  表示a = a+5;
例如:int a=3,b=4;
a+=b;相当于a=a+b;
+=的优先级跟=一样,低于运算符
 

i++与++i的效率

是内建数据类型时,它们的效率差别不大(去除编译器优化的影响)。所以在这种情况下我们大可不必关心。 自定义数据类型(主要是指类)时,此时我们不需要再做很多汇编代码的分析了,因为前缀式(++i)可以返回对象的引用,而后缀式(i++)必须产生一个临时对象保存更改前对象的值并返回(实现过自定义类型++运算符定义的就知道),所以导致在大对象的时候产生了较大的复制开销,引起效率降低,因此处理使用者自定义类型(注意不是指内建类型)的时候,应该尽可能的使用前缀式地增/递减,因为他天生体质较佳。

所以

内建数据类型的情况,效率没有区别。 自定义数据类型的情况,++i效率较高。

 
 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值