黑马程序员技术交流社区
标题:
c语言之局部变量
[打印本页]
作者:
skywan
时间:
2015-7-19 14:19
标题:
c语言之局部变量
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;
}
复制代码
作者:
杨远鹏
时间:
2015-7-19 16:38
全局变量和局部变量虽然同名,但是在内存中是分配各自的内存区域。12、13行的a是调用了外面的变量a,这个代码块结束,这个变量的数据是不会释放的,释放的只有在代码块内部定义的变量。
作者:
默凉雨
时间:
2015-7-19 21:45
不错!!! 加油 !!!赞一个!!!
作者:
shorfng
时间:
2015-7-19 21:57
学习了学习了
作者:
午夜码农
时间:
2015-7-19 22:03
不管是全局变量还是局部变量,都是 相对而言的,记住一点如局部的和全局的同名,那局部变量会占时覆盖掉全局变量,这个占时性要参考当代码块执行完毕是内存会释放问题。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2