堆和棧的存放內容

2021-10-08 19:43:34 字數 325 閱讀 4330

棧存放的是基本資料型別 + 引用變數名

int a = 1;

這裡的a和1都存放在棧中

string b = 「abc」;

這裡只有b存放在棧中,而"abc"則存放在堆中

堆存放的是new出來的物件

上述的string b = "abc"中,其實b是引用型別,指向"abc"這個字串物件,b存放在棧中,而"abc"這個字串物件是儲存在堆中的。

int c = new int[3];

這裡同理,c作為引用型別的變數存放在棧中,而長度為3這個陣列則存放在堆中,他們之間通過位址聯絡,c其實儲存的是這個長的為3的陣列的位址。

棧堆的emplace和push 棧和堆的詳解

private 作用範圍只能是自己本身 外界既不能訪問,也不能繼承 protected 作用範圍在自身類和子類,如果什麼都不加修飾,預設是這個 public作用範圍最大,可以在任何地方都可以訪問 外界既可以訪問,也可以繼承 package作用範圍在某個框架內 readwrite 預設 可讀可寫。表示...

演算法 筆試內容 堆與棧

在進行c 程式設計時,需要程式設計師對記憶體的了解比較精準。經常需要操作的記憶體可分為以下幾個類別 棧區 由編譯器自動分配和釋放,存放函式的引數值 區域性變數的值等,其操作的方式類似於資料結構中的棧。堆區 一般有程式設計師分配和釋放,若程式設計師不釋放,程式結束時可能由作業系統收回。主語它與資料結構...

堆和棧的區別

一直就搞不清出這個問題,今天上網想起來,隨即搜了搜,找到了一些資料。不知源作者是誰。姑且 拿來主義 一下,呵呵。一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結...