今天又是元气满满的一天
C语言的五大内存区间
1、 栈区(stack):函数的形参和局部变量,先入后出,由编译器自动分配,自动释放
2、 堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它和数据结构中的堆是两回事,分配方式类似与链表(malloc---free ;new—delete)
3、 全局区(静态区)(static):全局变量和静态变量是存放到一起的,初始化的全局和静态在一块区,未初始化的在相邻的另一块区域。系统释放。
4、 文字常量区:存放常量字符串,系统释放。
5、 代码区:存放函数体的二进制代码
变量的作用域和生存期(两种分类方式)
按作用域分:
(1) 局部变量
Ø 局部和全局重名时,屏蔽同名全局
Ø 不同作用域的局部变量可以重名
(2) 全局变量:作用域是整个源程序,在函数中使用全局变量,一般作全局说明。但在一个函数之前定义的全局变量,在函数体内不用再加说明。
Ø 用extern关键字定义的全局变量称为外部变量。可将作用域进行扩充(本源文件或其他源文件)。