一、C 语言内存区域划分
在 C 语言程序运行时,内存主要分为以下几个区域:
1.1 栈区(Stack)
特点:由编译器自动分配和释放,主要存储函数的局部变量、函数参数、返回地址等。栈区的内存分配和释放是按照后进先出(LIFO)的原则进行的,速度快。示例:
#include <stdio.h>void func() {int a = 10; // 变量 a 存储在栈区printf("a 的值: %d\n", a);
}int main() {func();return 0;
}
在这个例子中,`func` 函数中的局部变量 `a` 存储在栈区,当 `func` 函数执行完毕后,`a` 所占用的内存会自动被释放。
1.2 堆区(Heap)