3
A
回答
10
第一个声明循环外的作用域中的变量;循环结束后,变量仍然存在并且可用。第二个声明变量,使它属于循环的范围;在循环之后,变量不再存在,防止该变量被无意地/错误地使用。
在C99,C++,Java和其他类似的语言,你会发现大多是第二个语法,因为它是更安全 - 循环索引所属的环和不被修改/别处共享。但是,您会在较旧的C代码中看到很多前者,因为ANSI C不允许在循环中声明循环变量。
举个例子:
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
+0
答案是非常丰富的。 – Nobody 2010-04-30 10:06:31
2
这将取决于语言,你还没有:-)
在C指定(和该变量的一些其他),范围(有效地在这种情况下的持续时间)是不同的。首先,变量存在于循环之后,因为它在外部声明。
在后者中,它当循环结束,因为它的存在是“内部”循环体消失。
+0
感谢您的回答paxdiablo。 – Nobody 2010-04-30 10:07:06
相关问题
- 1. for循环中声明变量和外部循环之间有什么区别?
- 2. ES6在循环之前或循环中声明变量
- 3. Ruby:for循环和每个循环之间有什么区别?
- 4. 无限循环和循环之间有什么区别?
- 5. 在foreach循环之外声明变量
- 6. 用循环声明变量
- 7. 在AS3中循环或之前声明变量?
- 8. c循环和外部循环中的变量重新声明?
- 9. 为什么我的Python for循环remove()改变在循环之前声明的变量?
- 10. 循环和电路有什么区别
- 11. 循环和迭代有什么区别?
- 12. VB:在For循环中声明变量
- 13. 在循环中声明的变量
- 14. 在Java之前声明清单循环
- 15. 声明变量外循环并在循环中使用它
- 16. 什么声明将下面的循环变成无限循环?
- 17. 为什么在Javascript中包含变量声明for循环?
- 18. 为什么在for循环中“++ i”和“i ++”有什么区别?
- 19. for循环使用for循环中声明的变量值?
- 20. for循环中的循环变量声明样式
- 21. OpenMP - for循环中的变量声明
- 22. 循环中的局部变量声明
- 23. while循环中声明变量javascript
- 24. for循环中的C++声明变量
- 25. 声明2个变量在for()循环
- 26. 变量内部For循环和外部循环之间的区别
- 27. 这个while循环有什么区别?
- 28. 在声明for循环变量时,mut&mut会做什么吗?
- 29. 对于循环变量声明
- 30. 通过for循环声明php变量
它在某种程度上取决于语言。感谢迈克尔 – Quentin 2010-04-30 09:57:03