循环外的变量

int number = 0;
for(int i = 0; i < 10000; i++){
     number = 3 * i;
     printf("%d",number);
}

或循环内的变量
for(int i = 0; i < 10000; i++){
     int number = 3 * i;
     printf("%d",number);
}

建议使用哪一种,性能最好的一种?

编辑:

这只是展示我的意思的一个示例,我想知道的是,如果在循环内和循环外定义变量意味着同一件事,还是有区别。

最佳答案

是时候尽早学习一些东西了:面对printf,您可以对类似的东西进行的任何优化都是无关紧要的。

Printf会非常非常慢。您可以将数学提高五倍,而不会出现可测量的速度下降。这只是在终端上打印的本质。

至于您所编辑的问题,在循环或外部定义它都没有区别。想象一下

for (i = 0; i < 500; i++) {
  int a = i * 3;
}

与...相同
int forloop::a; // This doesn't work, the idea is to show it just changes the scope
for (i = 0; i < 500; i++) {
  a = i * 3;
}

它们将产生相同的代码,除非您开始需要在定义该变量的循环外部使用该变量,因为它是在循环的局部范围内定义的。所以...更多像这样:
int forloop::a;    // Still not valid code, just trying to show an explanation
namespace forloop {
for (i = 0; i < 500; i++) {
  a = i * 3;
}
} // namespace forloop

如果不清楚,请告知我,我们将进行更详细的说明或以其他方式进行解释。

关于c++ - 简单循环,哪一个可以提高性能,推荐哪一个?在循环内还是循环外定义变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10002410/

10-12 18:48