看看这个例子:
int i;
for (i=1;i.......
还有这个:
for (int i=1;i........
它们之间有什么区别?
int i;
// ... lots of stuff
for ( i = 0; i < 5; i++ ){
printf("%d\n",i); // can access i; prints value of i
}
printf("%d\n",i); // can access i; prints 5
相比之下:
for (int i = 0; i < 5; i++ ){
std::cout << i << std::endl; // can access i; prints value of i
}
std::cout << i << std::endl; // compiler error... i not in this scope
这要取决于语言,但你没有说明是哪种语言 :-)
在C语言(和一些其他语言)中,变量的作用域(实际上是持续时间)是不同的。在第一个例子中,变量在循环后仍然存在,因为它是在循环外声明的。
而在后一个例子中,它在循环结束时消失了,因为它的存在是“在”循环体内部的。