Questions tagged «pre-increment»

对于与定义或执行预递增操作有关的问题。






10
在C ++中递增-何时使用x ++或++ x?
我目前正在学习C ++,不久前我已经了解了增量。我知道您可以使用“ ++ x”在之前进行增量,然后使用“ x ++”在之后进行增量。 不过,我真的不知道什么时候使用这两种方法中的任何一种...我从来没有真正使用过“ ++ x”,并且到目前为止一切正常,因此,我什么时候应该使用它? 示例:在for循环中,何时最好使用“ ++ x”? 另外,有人可以确切解释不同的增量(或减量)如何工作吗?我真的很感激。

5
为什么“ while(i ++ <n){}”比“ while(++ i <n){}”显着慢
显然,在装有HotSpot JDK 1.7.0_45(并将所有编译器/ VM选项设置为默认值)的Windows 8笔记本电脑上,以下循环 final int n = Integer.MAX_VALUE; int i = 0; while (++i &lt; n) { } 比以下速度至少快两个数量级(〜10 ms与〜5000 ms): final int n = Integer.MAX_VALUE; int i = 0; while (i++ &lt; n) { } 我在编写循环以评估另一个不相关的性能问题时碰巧注意到了这个问题。之间的差异++i &lt; n和i++ &lt; n是巨大的,足以显著影响结果。 如果我们查看字节码,则较快版本的循环主体为: iinc iload ldc if_icmplt 对于较慢的版本: iload …


3
为什么(++ i)++有效,“ ++ i ++”无效?
让我们考虑以下代码: int main() { int i = 2; int b = ++i++; return 3; } 编译时出现以下错误: &lt;source&gt;: In function 'int main()': &lt;source&gt;:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ 这对我来说听起来很公平。后缀递增的优先级高于前缀递增的优先级,因此代码被解析为int b = ++(i++);,i是一个右值。因此,错误。 现在,让我们考虑带有括号的此变体,以覆盖默认优先级: int main() { int i = 2; int b …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.