请各位大神指导
void main(){
int i=1;
printf(“i=%d\n”,i);
{
int i=2;
printf("i=%d\n,i");
{
i++;
printf("i=%d\n,i");
}
printf("i=%d\n,i");
}
printf("i=%d\n,i");
}
输出结果为什么是1 2 3 3 1?
#include <stdio.h> int main( void ) { int i = 1; // ------ ① printf( "i=%d\n", i ); // ------ 使用的是这行所在空间的i,即①处的i { int i = 2; // ------ ② printf( "i=%d\n", i ); // ------ 使用的是这行所在空间的i,即②处的i { i++; // ------ 这行所在空间内没有i,所以它向外寻找,找到i即停止搜寻。即它使用的是②处的i printf( "i=%d\n", i ); } printf( "i=%d\n", i ); // ------ 使用的是这行所在空间的i,即②处的i } printf( "i=%d\n", i ); // ------ 使用的是这行所在空间的i,即①处的i }