For-Loop计数器会停留吗?

Big*_*hne 5 c iterator loops for-loop

简单的问题.想象一下这在ANSI-C中:

int i;

for(i=0 ; i<5 ; i++){
   //Something...
}

printf("i is %d\n", i);
Run Code Online (Sandbox Code Playgroud)

这个输出"我是5"吗?

i保留还是i循环后未定义的值?

Pau*_*ams 15

是.如果i在for循环之外声明,它将在循环退出后保持在范围内.它保留了循环退出时的任何值.

如果你在循环中声明我:

for (int i = 0 ; i < 5 ; i++)
{

}
Run Code Online (Sandbox Code Playgroud)

然后我在循环退出后未定义.