for循环中,不同位置定义的变量作用域是不一样的。
int main()
{
int i=0;
for(int i=0;i<3;i++)
{
printf("\tfor定义的i=%d\n",i);
int i=5;
{
int i=10;
printf("\t\t\tfor内部代码块定义的i=%d\n",i);
}
printf("\t\tfor内部定义的i=%d\n",i);
}
printf("main定义的i=%d\n",i);
//错误的写法,a的作用域范围小于for循环本身的作用域范围
//for循环中做累加操作时无法找到变量 a
/*
for(;;a++)
{
int a=1;
}
*/
return 0;
}
输出结果
for定义的i=0
for内部代码块定义的i=10
for内部定义的i=5
for定义的i=1
for内部代码块定义的i=10
for内部定义的i=5
for定义的i=2
for内部代码块定义的i=10
for内部定义的i=5
main定义的i=0