求输出结果 求分析C语言问题

main( )
{
int x=1;
{
int x=3;
void prt(void); prt( );
printf("(2) x=%d\n",x);
}
printf("(3) x=%d\n",x);
}
void prt(void)
{
int x=5;
printf("(1) x=%d\n", x);
}

main( )
{
int x=1;
{
int x=3;
void prt(void);
//输出(1) x=5,输出的是prt函数的局部变量int x=5;中的x的值,
//因为不同函数中的局部变量相互独立,互不影响
prt( );
//输出(2) x=3,输出的是main函数的块级局部变量int x=3;中的x,
//因为它隐藏了main中的局部变量int x=1;中的x
printf("(2) x=%d\n",x);
}
//输出(3) x=1,输出的是main中的局部变量int x=1;中的x,
//因为在这里,块级局部变量int x=3;中的x已超出了作用域范围
printf("(3) x=%d\n",x);
}
void prt(void)
{
int x=5;
printf("(1) x=%d\n", x);
}
温馨提示:答案为网友推荐,仅供参考
相似回答