我正在使用visual studio 2010,当我做类似的事情时
for(int i = 0, j = 0; i < 10; i++)
{
if(m_Var == 1)
j++;
}
if(j == 0)//This line errors undeclared identifier
DoSomething();
Run Code Online (Sandbox Code Playgroud)
我j在for循环中声明了为什么它会出错"未声明的标识符"?
另一个例子是
for(int i = 0; i < 10; i++)
{
m_Var1++;
}
for(i = 0; i < 200; i++)//This line errors undeclared identifier
{
m_Var2++;
}
Run Code Online (Sandbox Code Playgroud)
那个代码错误,即使它是在for循环中声明的,但为什么呢?有没有办法做到这一点,而不必i在循环之前声明,但在循环中声明它,而不是像上面的例子?
在第一个示例中,j仅存在于循环的范围内
for(int i = 0, j = 0; i < 10; i++)
{
if(m_Var == 1) j++;
} // i, j exist no longer
Run Code Online (Sandbox Code Playgroud)
在第二个例子中,同样适用于i.它的范围是第一个循环.你甚至可以在没有循环的情况下检查它:
{
int i = 0;
} // end of scope, end of i
i++; // error,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |