标签: pre-increment

++ i和i ++有什么区别?

在C中,使用++i和之间有什么区别i++,哪些应该在for循环的增量块中使用?

c for-loop pre-increment post-increment

818
推荐指数
19
解决办法
96万
查看次数

448
推荐指数
11
解决办法
10万
查看次数


循环中i ++和++ i之间的区别?

是否有差异++i,并i++在一个for循环?它只是一个语法的东西吗?

language-agnostic for-loop pre-increment post-increment

294
推荐指数
10
解决办法
28万
查看次数

后增量(i ++)和预增量(++ i)运算符如何在Java中工作?

你能解释一下这个Java代码的输出吗?

int a=5,i;

i=++a + ++a + a++;
i=a++ + ++a + ++a;
a=++a + ++a + a++;

System.out.println(a);
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

两种情况下的输出均为20

java pre-increment post-increment

88
推荐指数
8
解决办法
29万
查看次数

C++中的增量 - 何时使用x ++或++ x?

我目前正在学习C++,而且我刚刚学会了增量.我知道你可以使用"++ x"进行增量,然后使用"x ++"进行增量.

不过,我真的不知道何时使用两者中的任何一个...我从来没有真正使用过"++ x",到目前为止,事情总是很好 - 所以,我什么时候应该使用它?

示例:在for循环中,何时优先使用"++ x"?

此外,有人可以确切地解释不同的增量(或减量)如何工作?我真的很感激.

c++ pre-increment post-increment

83
推荐指数
7
解决办法
16万
查看次数

为什么"while(i ++ <n){}"明显慢于"while(++ i <n){}"

显然在我的Windows 8笔记本电脑上使用HotSpot JDK 1.7.0_45(所有编译器/ VM选项都设置为默认值),下面的循环

final int n = Integer.MAX_VALUE;
int i = 0;
while (++i < n) {
}
Run Code Online (Sandbox Code Playgroud)

比以下情况快至少2个数量级(~10 ms vs.~5000 ms):

final int n = Integer.MAX_VALUE;
int i = 0;
while (i++ < n) {
}
Run Code Online (Sandbox Code Playgroud)

在编写循环以评估另一个不相关的性能问题时,我碰巧注意到了这个问题.之间的差异++i < ni++ < n是巨大的,足以显著影响结果.

如果我们查看字节码,更快版本的循环体是:

iinc
iload
ldc
if_icmplt
Run Code Online (Sandbox Code Playgroud)

而对于较慢的版本:

iload
iinc
ldc
if_icmplt
Run Code Online (Sandbox Code Playgroud)

因此++i < n,它首先将局部变量递增i1,然后将其推入操作数堆栈,同时i++ < n以相反的顺序执行这两个步骤.但这似乎并不能解释为什么前者要快得多.后一种情况是否涉及临时副本?或者是否应该负责性能差异的字节码(VM实现,硬件等)以外的东西?

我已经阅读了一些关于++ii++(但并非详尽无遗)的其他讨论,但未找到任何特定于Java的答案,并且与价值比较中涉及++ii++涉及的情况直接相关.

java performance compiler-optimization pre-increment post-increment

74
推荐指数
3
解决办法
9556
查看次数

++ Var和Var ++之间的区别

在编程中,特别是在Java中,有什么区别:

int var = 0;
var++;
Run Code Online (Sandbox Code Playgroud)

int var = 0;
++var;
Run Code Online (Sandbox Code Playgroud)

这会对for循环产生什么影响?

例如

for (int i = 0; i < 10; i++) {}

for (int i = 0; i < 10; ++i) {}
Run Code Online (Sandbox Code Playgroud)

java increment operators pre-increment post-increment

73
推荐指数
5
解决办法
8万
查看次数

后增量和预增量概念?

我不明白后缀和前缀增量或减量的概念.谁能给出更好的解释?

c++ conceptual pre-increment post-increment

66
推荐指数
6
解决办法
11万
查看次数

C#中的前后增量

我对C#编译器如何处理前后增量和减量有点困惑.

当我编写以下代码时:

int x = 4;
x = x++ + ++x;
Run Code Online (Sandbox Code Playgroud)

x之后会有10的价值.我认为这是因为预增量设置x5,这使得它的5+5 计算结果为10.然后后增量将更新x6,但不会使用此值,因为这10将被分配给x.

但是当我编码:

int x = 4;
x = x-- - --x;
Run Code Online (Sandbox Code Playgroud)

然后x将是2之后.任何人都可以解释为什么会这样吗?

c# pre-increment post-increment

61
推荐指数
4
解决办法
3万
查看次数