【发布时间】:2017-04-14 19:55:29
【问题描述】:
当我像这样写一个简单的for循环时
for (int i = 0; i < myList.size(); i++){}
在 Java、C 和 C++ 中,它是在每次迭代中重新评估 myList.size() 还是仅在循环开始时重新评估一次?如果它重新评估,是否预先评估大小,即,
int n = myList.size();
for (int i = 0; i < n; i++){}
在性能方面给了我们一些重要的东西?
【问题讨论】:
-
哪种语言? c++、c 还是 java?
-
选择一种语言。你提到的每一个都有一个不同的规范文档来管理它的行为方式
-
没有 C/C++ 这样的东西。不要散布这种废话。
-
@StoryTeller:它现在是一个更大的超集,但仍然是一个超集。
-
@DaveDoknjas - 不是,也从来不是。
int *p = malloc(sizeof *p);在 C 中始终有效,而在 C++ 中从不有效。自 2011 年以来,两种语言之间的差距更大,两者都不是另一种语言的子集。停止传播错误信息。