#include <iostream>
using namespace std;
int main() {
int i;
for(i=0; i <= 11; i+=3)
cout << i;
cout << endl << i << endl;
}
输出为:0 3 6和9然后一旦它退出循环12。 循环内外的i地址显示相同的
我需要知道的是:for循环中的i是否与for循环外部初始化的i相同,因为变量i首先在我创建的for循环之前初始化了吗?
答案 0 :(得分:11)
是的,循环中的i与循环外部的i相同,因为你只声明了一次。
如果出于某种原因你希望它不同(我强烈推荐它,你应该为不同的变量选择不同的名称)你可以在for循环中重新声明i:
for (int i = 0; i ...
答案 1 :(得分:4)
与'我'var
相同#include <iostream>
using namespace std;
int i = 0;
int main() {
int i;
for(i=0; i <= 11; i+=3)
cout << i;
cout << endl << i << endl;
cout << endl << ::i << endl;
}
我是12岁
::我是0
答案 2 :(得分:2)
为了在C ++(以及C语言)中创建新对象(变量),您必须明确地定义它。在您的程序中,您只有一个变量定义 - int i;
。这立即意味着那里只有一个变量i
。任何其他i
都没有机会,无论任何“for循环范围”或其他任何内容。
答案 3 :(得分:1)
只有一个'i'变量。你只是在foor循环中分配一个值。
答案 4 :(得分:1)
这里只存在一个变量 - 是的,循环中的i与退出循环后输出的变量相同。但是,变量仅作为循环的一部分初始化,而不是之前。
答案 5 :(得分:0)
表单的for-loop
:
for (init condition; expression) statement
完全等同于:
{
init
while (condition)
{
statement
expression;
}
}
所以使用你的代码:
int i;
{
i=0;
while (i <= 11)
{
cout << i;
i += 3;
}
}
cout << endl << i << endl;
}
你能告诉我吗? Andrey puts it best:如果你没有定义它,它就不存在。