c 變量在內存中的區域

c 變量在內存中的區域

C 變量在內存中的區域

內存區域 area 變量類型
stack 函數的參數,內部作用域的變量
heap malloc()等動態申請的變量
靜態區 static 全局變量,靜態變量
常量區 const 常量,常量字符串

棧 stack

存放局部變量:

  • 函數的參數
  • 函數內部作用域的變量

如,

int func(int var)
{
    int ret = var;
    return ret;
}

堆 heap

存放動態變量:

  • malloc()等動態申請的變量

如,

void *p = malloc(some_size);

靜態區 static

存放靜態變量:

  • 全局變量
  • 靜態變量

包括:

  • 初始化的靜態區
  • 未初始化的靜態區

如,

int global_var;
int func()
{
    static int static_var;
    return static_var;
}

常量區 const

存放常量:

  • 常量
  • 常量字符串

常量可能存放於:

  • 可能是 內存的常量區
  • 可能是 flash

如,

const int const_var = 100;
"string is stored in the const area"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章