1局部变量与全局变量使用范围的不同,2在代码内部可以定义和外部相同的变量名,只不过代码块结束就释放里面的内存数据,不在保留。
疑问:最后输出的结果a是最开始定义变量所在的内存值。
- int main(int argc,const char *argv)
- {
- //定义局部变量a
- int a=0;
- printf("a=%d\n", a);//0
- //代码块
- {
- //定义另外一个局部变量a1
- int a1 = 10;
- printf("a1=%d\n", a1);//10
- //此时变量a访问外部的局部变量,指向最外层的变量a,重新赋值
- a = 20;
- printf("a=%d\n", a);//20
- //在代码内部可以定义和外部相同的变量名,重新定义变量a
- int a = 30;
- printf("a=%d\n", a);//30
- }//代码块结束,释放内存a1,a
- printf("a=%d\n", a);//20
- return 0;
- }
复制代码 |
|