文章目录 执行过程:内存分区:运行前:运行后: 执行过程: 预处理:宏定义展开、头文件展开、条件编译、这里不会检查语法编译:检查语法、将预处理后文件编译生成汇编文件汇编:将汇编文件生成目标文件(二进制文件)链接:将目标文件链接为可执行程序 内存分区: 运行前: 代码区: 共享只读 数据区: data已初始化的全局变量、静态变量、常量bss未初始化的全局变量、静态变量、常量 运行后: 栈区 属于先进后出的数据结构由编译器管理数据开辟和释放变量的生命周期在该函数结束后自动释放掉 堆区 容量远远大于栈没有先进后出这样的数据结构由程序员管理开辟(malloc)和管理释放(free)记住手动开辟的要手动释放