有同学能给我讲一下这种题嘛

img

外部变量就是全局变量,内部变量就是局部变量。

程序在执行时,将内存大方向划分为4个区域

  • 代码区:存放函数体的二进制代码,由操作系统进行管理的
  • 全局区:存放全局变量和静态变量以及常量
  • 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等
  • 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

代码区、全局区称之为静态区, 栈区、堆区称之为动态区。

因此 B 选项是错误的。

只有使用malloc或者new等动态分配函数所定义的变量才会存储在动态存储区中。