【发布时间】:2011-01-24 08:53:47
【问题描述】:
有什么区别
for (int i = 0; i < MAX; i++)
{
//...do something
}
和
for (int i = 0; i < MAX; ++i)
{
//...do something
}
?
【问题讨论】:
有什么区别
for (int i = 0; i < MAX; i++)
{
//...do something
}
和
for (int i = 0; i < MAX; ++i)
{
//...do something
}
?
【问题讨论】:
什么都没有。增量是一个单独的语句,因此无论是预增量还是后增量都无关紧要。
【讨论】:
只有当优化器不够聪明,以至于即使你指定了 i++ 也没有意识到它可以做 ++i 时,它才有意义。 (这在现代编译器中不太可能。)
你可以认出真正的老程序员,因为他们总是使用 ++i,除非他们需要使用 i++,因为从前编译器就没有那么聪明了。
【讨论】:
如果您关心复合语句中某个变量的值,则后自增运算符和前自增运算符很重要。独立的增量语句,就像 for 循环的第三个子句一样,不受您选择的 pre 或 post 的影响。
int j = i++; 和 int j = ++i; 非常不同。你想要i 的当前值还是想要i 的递增值?在 for 循环示例中,只要递增,您就不会在意。
【讨论】: