内层代码块定义了一个与外层代码块名字相同的变量,执行时的变量覆盖小疑惑
C语言中,内层代码块定义了一个与外层代码块名字相同的变量,执行时,内层变量覆盖了外层变量,当内层代码块执行完后,外层代码块定义的那个变量恢复使用。。。。。
疑惑 :定义变量的时候虽然名字相同,但是所处的代码块不同,内层代码块定义的变量应该是存储在不同内存位置的一个独立变量,既然内存位置都不一样,即存储变量的地址不一样,那么在程序执行的时候,内层 覆盖 外层变量是否太过于牵强,还是我的理解不对,其中奥妙何在?
例如
int main()
{
int a=10;
printf("%d\n",a);
{//新的代码块
int a=30;
printf("%d\n",a);
}
printf("%d\n",a);
}
Co`Ag
9 years, 2 months ago