首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最简单循环中效率的一个例子

最简单循环中效率的一个例子
EN

Stack Overflow用户
提问于 2015-03-08 22:09:31
回答 1查看 69关注 0票数 0

假设有一个循环,其中有一个名为counter的整数变量,需要在每次迭代时将其重置为0。这两个版本中哪一个会更有效率?

版本-1:

代码语言:javascript
复制
for (int i = 0; i < 10; i++) {
     int counter = 0; 
     if (something()) counter++;
}

版本-2:

代码语言:javascript
复制
int counter;
for (int i = 0; i < 10; i++) {
     counter = 0; 
     if (something()) counter++;
}

在第一个版本中,计数器变量的作用域在for循环中,每次迭代都在内存中重新分配。在第二种情况下,它只是被覆盖在整个程序的单个内存位置上。我认为第二个版本更有效率,但效率是微不足道还是相当大?

EN

回答 1

Stack Overflow用户

发布于 2015-03-08 22:16:46

在第一个版本中,计数器不会在每次迭代时重新分配到内存中。它是一个基本类型(int)的变量,所以大多数编译器都会将它存储在堆栈中。没有理由对循环中的不同迭代使用不同的堆栈位置,因此它将存储在相同的位置,就像在第二个版本中一样。

(这假设编译器不会完全删除counter变量,因为您没有在任何地方使用它的值。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28932509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档