c++技巧---明确前缀后缀操作符之间的差异
帐 号: 注册帐号
密 码:  找回密码
      记住用户名和密码
c++技巧---明确前缀后缀操作符之间的差异

内置的++操作符可以放在操作数的两边:


int n=0;++n; 
 

  你一定知道前缀操作符首先改变操作数,然后再使用它的值。比如:

int n=0, m=0;n = ++m;
 
  在这个例子中,在赋值之后,n等于1;因为它是在将m赋予n之前完成的自增操作。

int n=0, m=0;n = m++; 
 

  在这个例子中,赋值之后,n等于0;因为它是先将m赋予n,之后m再加1。

  为了更好的理解前缀操作符和后缀操作符之间的区别,我们可以查看这些操作的反汇编代码。即使你不了解汇编语言,你也可以很清楚地看到二者之间的区别,注意inc指令出现的位置:

 

注:前缀操作符、后缀操作符与性能之间的联系是什么?原文作者没有说明。所以有了亚历山大同志 的疑问。在此做一下说明:当应用内置类型的操作时,前缀和后缀操作符的性能区别通常可以忽略。然而,对于用户自定义类型,后缀操作符的效率要低于前缀操作符,这是因为在运行操作符之间编译器需要建立一个临时的对象

copyright:2016-2020|邮箱:imalib@vip.163.com

蜀ICP备16020986号