c裡面static申明的變數是存在哪個區堆區棧區代

2021-05-16 23:50:38 字數 1055 閱讀 4380

1樓:匿名使用者

全域性變數、常量,都是在資料區的

函式區域性變數在棧上

動態分配的在堆上

c++的成員變數是在堆還是棧區

2樓:幻夢·人生

成員變數並不能決定自身的

儲存空間位置。決定儲存位置的物件的建立方式。

即:如果物件是函式內的非靜態區域性變數,則物件,物件的成員變數儲存在棧區。

如果物件是全域性變數,則物件,物件的成員變數儲存在靜態區。

如果物件是函式內的靜態區域性變數,則物件,物件的成員變數儲存在靜態區。

如果物件是new出來的,則物件,物件的成員變數儲存在堆區。

3樓:匿名使用者

這不是根據這個來分的,這要看你物件本身在哪兒

4樓:風吹過的街道

在main裡面,如果使用了new就是堆區,如果沒有就是棧區

5樓:匿名使用者

是在堆區是在堆區是在堆區是在堆區是在堆區

c++靜態儲存區,棧和堆的區別

6樓:匿名使用者

靜態儲存區:記憶體bai在程式編譯的時候就du已經分配好,zhi這塊內dao

存在程式的整個執行回期間都存在。它主要存答放靜態資料、全域性資料和常量。

棧區:在執行函式時,函式(包括main函式)內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內建於處理器的指令集中,效率很高,但是分配的記憶體容量有限。

(任何變數都處於站區,例如int

a = ,變數a處於棧區。陣列的內容也存在於棧區。)

堆區:亦稱動態記憶體分配。程式在執行的時候用malloc或new申請任意大小的記憶體,程式設計師自己負責在適當的時候用free或delete釋放記憶體。

動態記憶體的生存期可以由我們決定,如果我們不釋放記憶體,程式將在最後才釋放掉動態記憶體。

但是,良好的程式設計習慣是:如果某動態記憶體不再使用,需要將其釋放掉,並立即將指標置位null,防止產生野指標。

c語言中,怎麼判斷變數的型別 如何判斷變數是int還是l

1 首先在duc語言中,long long 是c99標準對整形類zhi型做的擴充套件,dao每個long long型別的變數佔8位元組版,64位。如下圖使用 lld輸出。權 2 這種輸出方法的結果如下圖所示,可以看到輸出結果是0,而很明顯輸出的結果不應該為零,也就是說輸出結果是錯誤的。3 這時要看下...

C long型別變數問題,c 裡面有沒有比long更長的資料型別

1 此變數型別是否支援icloneable,如果支援的話,可以使用 param.clone得到一個新的變數。2 如果不支援的話,就需要用到反射,a.dim mytype as type gettype param b.使用反射 activator.createinstance 可以建立型別為myty...

急!!C已知變數a,b,c是整型變數,且a b c 5,則表示式a b c 1b c

答案為1。詳解 a b c 1 b c 2 等價於 a b c 1 b c 2 計算機內部計算步驟 可以檢視彙編 先算 a b c 1 0 5 1 4測試上一步專結果 結果為4 表屬達式為真。再算b c 2 結果為6 注意4 2結果為2,因為都是整型,餘數丟掉 測試上一步結果 結果為6 表示式為真。...