我是 C++ 新手,遇到了这个问题:
for (int i=0 ; i<500 ; i++) {
//to do
}
int i;
std::cin >> i;
更新:使用visual studio 2010(及其使用的编译器)for循环外的i在调用cin >> i之后的值为500;我正在使用 Visual Studio 调试器查看值 <<(这是问题 - 谢谢 Greg)
现在我期待
a) 整数 i;在 for 循环和 int i=0 之外;成为不同的变量,即 for 循环 i 一旦大括号关闭就超出范围
b)一旦我意识到它没有超出范围,我想知道为什么它没有被 cin 覆盖。
我认为 b) 是有意的(尽管我在 Bjarne Stroustrup 关于 c++ 的书中找不到它所在的页面),但我确信它在同一本书中指出变量在它们所包含的大括号内具有范围。
在我知道的大多数其他语言中,在 for 构造中声明变量时,它们被认为是在 for 循环的大括号中,但在 c++ 中似乎并非如此。
是这种情况吗,这是否特定于 for 循环,或者是否有其他情况发生这种情况(我想不出其他任何情况,但嘿,我是新来的)
谢谢