请问这个程序的结果是什么?

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:04:28
#include <stdio.h>
main()
{
int a=10;
{
int a=15;
printf("a.1=%d,",a);
}
printf("a.2=%d\n",a);
}

初学者,请详细说一下问什么。

15,10

第2个int a作用域为括号内,
第一个int a作用域为main函数,

a.1=15
a.2=10

这是个局部变量作用域的问题。局部变量值在自己的语句块内有意义,语句块有大括号区分。
在内部括号内的a是括号内的a覆盖了外边的a,所以a.1=15,而运行外边时,内部a已经出了作用域,被销毁,只有外部的a