内置的++操作符可以放在操作数的两边:
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号