一个程序本质上由BSS段、data段、texe段,三个组成。
静态内存——BSS——未初始化的全局变量的一块内存区域。
静态内存——数据段——已初始化的全局变量。
代码段:——用来存放程序执行代码——只读。
堆(heap)——一般新分配的内存如malloc就是堆扩大
栈(stack)——用户存放程序临时创建的局部变量。
static 无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放。
const 全局变量存放在只读数据段,编译期最初将其保存在符号表中,第一次使用时为其分配内存,程序结束释放。
const局部变量,在程序运行时存放在栈中,程序结束释放。
全局变量存储在全局/静态区域,在编译期为其分配内存,在程序结束时释放。
局部变量存储在栈中,代码块结束时释放。
当全局变量和静态局部变量未赋初值时,系统自动置为0