int++ 和 ++int 有啥区别? [复制]

Posted

技术标签:

【中文标题】int++ 和 ++int 有啥区别? [复制]【英文标题】:What is the difference between int++ and ++int? [duplicate]int++ 和 ++int 有什么区别? [复制] 【发布时间】:2012-04-12 15:19:44 【问题描述】:

可能重复:What is the difference between ++i and i++pre Decrement vs. post Decrement

是的,我是菜鸟,但我完全忘记了他们俩是做什么的。

但是,我知道 int++ 只是将 int 的值加一。

那么,什么是 ++int?

谢谢。

【问题讨论】:

这可能是重复的。 请为您正在谈论的编程语言添加标签。 【参考方案1】:

如果您在谈论 C(或类似 C 的语言),则完全相同,除非您使用该值:

int a = 10;
int b = a++;

在这种情况下,a 变为 11,b 设置为 10。这是后增量 - 您在 使用后增量。

如果你把上面那一行改成:

int b = ++a;

然后a 仍然变为 11,但 b 也是如此。那是因为它是预增量的 - 你在 使用之前增量。

请注意,对于 C++ 类来说,这并不完全相同,通过优先选择一个类可以提高效率。但既然你在谈论整数,C++ 的行为与 C 相同。

【讨论】:

【参考方案2】:

a++ 将返回 a 并递增它,++a 将递增 a 并返回它:

a = 5; b = a++; // b = 5, a = 6

a = 5; b = ++a; // b = 6, a = 6

【讨论】:

【参考方案3】:

C 或 C++ 中的每个表达式都有一个类型、一个值和可能的副作用。

int i;
++i;

++i 的类型是int。副作用是增加i。表达式的值是i值。

int i;
i++;

i++ 的类型是int。副作用是增加i。表达式的值是i值。

【讨论】:

【参考方案4】:

它是预增量运算符

nice explanation here

【讨论】:

以上是关于int++ 和 ++int 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

int 和 NSInteger 有啥区别? [复制]

Convert.ToInt32 和 Int32.Parse 有啥区别? [复制]

“new int[5]”和“malloc(5 * sizeof(int))”在 C++ 中有啥区别? [复制]

“new int[5]”和“malloc(5 * sizeof(int))”在 C++ 中有啥区别? [复制]

c中的long和long int有啥区别? [复制]

Convert.ToInt16 或 32 或 64 和 Int.Parse 有啥区别? [复制]