全局初始化变量:数据段
全局未初始化变量:数据段(BSS)
全局的、静态的(static)、初始化的变量:数据段
全局的、静态的、未初始化变量:数据段
全局的常量(const):代码段
局部初始化的变量:栈
局部未初始化变量:栈
局部的、静态的、初始化变量:数据段
局部的、静态的、未初始化变量:数据段
局部常量:栈
在C语言的程序中,对变量的使用还有以下几点需要注意:
1. 体中定义的变量通常是在栈上,不需要在程序中进行管理,由编绎器处理。
2. 用malloc,calloc,realloc等分配内存的函数所分配的内存空间在堆上,程序必须保证在使用free释放,否则会发生内存泄漏。
3. 所有函数体外定义的是全局变量,加了static后的变量不管是在函数内部或外部都放在全局区。
4. 使用const定义的变量将放于程序的只读数据区。