一、程序运行前

  • 代码区(只读的、共享)
  • 数据区(全局变量和静态变量)

二、程序运行后

  • 栈区
  • 堆区
  • 全局静态区(全局变量、静态变量、常量)
  • 代码区

内存区间段

Linux程序运行内存虚拟地址空间:

Linux程序运行内存虚拟地址空间

三、全局变量与静态变量的区别

作用域不同
全局变量默认是 extern
静态变量是文件作用域

C/C++ 中 extern 关键字详解