变量的作用域有关问题
变量的作用域问题
------解决方案--------------------
作用域结束了,所以就能再定义了。
------解决方案--------------------
有些比较老的编译器可能会有这个问题,i出了循环后还有效
------解决方案--------------------
------解决方案--------------------
i是for循环下的局部变量,当退出for循环时,for循环下的局部变量自然也消失了。所以第二个i跟第一个i一点关系都没有。当然,以上的都是C/C++里的标准,只有遵守标准的编译器才是正确的。现在新的编译器遵守标准方面都很不错了。
这个问题是C里面很简单的问题,如果认真将C/C++的教材看过一遍的,估计都不会有这个疑惑。建议找本教材好好看看。
- C/C++ code
#include <iostream> using namespace std; int main() { for (int i = 3; ;) { printf("%d\n", i); break; } // i的作用域在该for循环内 for (int i = 4; ;) // 上个的作用域已经结束了,怎么还有重复定义?? { printf("%d\n", i); break; } return 0; }
------解决方案--------------------
作用域结束了,所以就能再定义了。
------解决方案--------------------
有些比较老的编译器可能会有这个问题,i出了循环后还有效
------解决方案--------------------
------解决方案--------------------
i是for循环下的局部变量,当退出for循环时,for循环下的局部变量自然也消失了。所以第二个i跟第一个i一点关系都没有。当然,以上的都是C/C++里的标准,只有遵守标准的编译器才是正确的。现在新的编译器遵守标准方面都很不错了。
这个问题是C里面很简单的问题,如果认真将C/C++的教材看过一遍的,估计都不会有这个疑惑。建议找本教材好好看看。