回覆列表
  • 1 # 手機使用者86152555249

    一、靜態儲存區和常量儲存區的區別:

    1、靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中;常量儲存區,這是一塊比較特殊的儲存區,他們裡面存放的是常量,是不允許修改的。

    2、靜態儲存是main函式執行前分配記憶體並初始化;常量儲存是固化在執行檔案上的資料。棧的方向和平臺有關,一般來說,windows由高地址向低地址增長,linux相反,但linux演變出來的作業系統不排除有特殊情況。

    3、常量儲存區裡面的資料是放在程式碼段裡的,不佔記憶體。靜態儲存區是在記憶體空間中的,在其所屬的類(或檔案)中是全域性的

    二、靜態儲存區和常量儲存區介紹

    1、靜態儲存區:所有的靜態物件,全域性物件都於靜態儲存區分配,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的 C 語言中,全域性變數又分為初始化的和未初始化的(初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數與靜態變數在相鄰的另一塊區域,同時未被初始化的物件儲存區可以透過 void* 來訪問和操縱,程式結束後由系統自行釋放),在 C++ 裡面沒有這個區分了,他們共同佔用同一塊記憶體區。

    2、常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改

    三、注意事項:常量字串都存放在靜態儲存區,返回的是常量字串的首地址.

  • 中秋節和大豐收的關聯?
  • 十四朵花的玫瑰花語是什麼?