c 函式的記憶體和引用

2021-10-08 11:55:02 字數 926 閱讀 7342

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,引用是乙個常量指...