1 **區(共享和唯讀):區域性變數(在函式內部定義的是區域性變數)
2 全域性區:全域性變數,靜態變數(static關鍵字),常量
在這裡插入**片
3 棧區(編譯器分配釋放):函式形參、區域性變數(指標是區域性變數)
int
*func()
intmain()
4 堆區:
//用new,在堆區開闢新記憶體
//int
*func()
intmain()
//delete手動釋放
```cpp
intmain()
for(
int i=
0;i<
10;i++
)delete
arr;
system
("pause"
)return0;
}
語法:資料型別 &別名=原名
int &b=a;
引用可以形參修飾實參
引用的本質在c++內部實現是乙個指標常量
1.值傳遞
void
myswap01
(int a,
int b)
2.位址傳遞
void
myswap01
(int
*a,int
*b)2.引用
void
myswap03
(int
&a,int
&b)}
常量引用
使用場景用來修飾形參防止誤操作
const
int&ref =10;
//唯讀不可修改
C 結構體中的引用和引用占用記憶體問題
答 並不會,引用的底層實現其實是乙個指向相同變數的指標,但是套用乙個老哥的話 指標資訊是占用記憶體的,這部分記憶體是系統自動分配的,不需要你來操心它被放在 通常我們說分配記憶體空間,是給你的變數內容使用的。你的變數可能是一串字元,一段文字,乙個數值。這些是真正需要你分配空間的地方。就像賓館一樣,來了...
c和c 中的記憶體分配和記憶體釋放函式
c語言中的free 對應malloc 或delete 對應c 中的new 來釋放 例 char pt1,pt2 pt1 char malloc 100 pt2 pt1 free pt1 pt1 null return 0 第一行定義兩個字元指標,但沒有賦初值,編譯器只給pt1 pt2個分配兩個位元組...
C 引用占用記憶體?
說到引用,一般c 的教材中都是這麼定義的 1,引用就是乙個物件的別名。2,引用不是值不佔記憶體空間。3,引用必須在定義時賦值,將變數與引用繫結。那你有沒有想過,上面的定義正確嗎?編譯器是如何解釋引用的?這裡先給出引用的本質定義,後面我們再進一步論證。1,引用實際是通過指標實現的。2,引用是乙個常量指...