请各位大神指导
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
}