C/C++语言中的自增(自减)运算符

1.为什么会出现自增运算符?

原因:

(1)可以使代码更加简练。但是,这也会使代码的可读性变差。例如:

#include <stdio.h>
void main()
{
int x = 5;
printf("%d\n", (++x) + (++x) + (++x));
}

 (2)自增运算符可以使自增运算更加高效。语句i = i +1;将会涉及内存存取操作,而i++可以再寄存器中进行,后者的效率当然会比前者高,尤其涉及到循环使更是如此。

当然这也会带来一些副作用。因为不同编译器对自增运算符的解释是有差别的,从而导致同一条语句在不同的编译环境下产生不同的结果。例如:

int i = 4;   

int a = (++i) + (++i) + (++i);  

三个不同的编译环境的结果:

 Visual C++ 6.0 sp6    :a = 19   

Visual Studio 2005      :a = 21   

gcc.exe (GCC) 3.4.5 (mingw-vista special)    :    a = 19  

这样就产生了矛盾:如果平衡程序的可读性和高效性?

1.在程序中,我们应当避免出现前自增和后自增混用的情况,即屏蔽前自增和后自增的差别;

2.不要再一个复杂的表达式中过多使用自增运算符,否则会大大减弱程序的可读性,而且也会使编译结果与编译器有关从而不可移植;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值