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 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Convert.ToInt32 和 Int32.Parse 有啥区别? [复制]
“new int[5]”和“malloc(5 * sizeof(int))”在 C++ 中有啥区别? [复制]