转载自博客园 锋邢天下 博主的 变量类型,变量作用域,变量存储空间,变量生命周期 。文章总结很不错,于是转载学习。如侵删,若有不足望补充。
习题
备注:
其中提到了 .bss 用于存放未初始化的全局变量和静态变量。可以记忆:
已初始化的全局变量和局部静态变量都在__data段中,而未初始化的全局变量在__common段中,未初始化的局部静态变量在__bss段中。
这提供一个很详细的博客,reference: C/C++中已初始化/未初始化全局/静态/局部变量/常量在内存中的位置
未初始化全局变量,指在C 程序中定义成全局作用域而又没有初始化的变量,这种变量在程序运行后是被自动初始化为全0 的。编译器编译的时候会将这类变量收集起来集中放置到
.bss段中,这个段只记录了段长,没有实际上的内容(全是0,没必要存储),在程序被装载时操作系统会为它分配等于段长的内存,并全部初始化为0。