C 基礎學習DAY1 10 引用的使用方式

2021-09-24 05:26:53 字數 962 閱讀 2416

#define _crt_secury_no_warnings

#include

using namespace std;

//1、指標的引用

/*引用的本質 int i=5;

int &ri=i;

ri=8;

int* const pi=&i;*/

/*如果定義乙個結構體型別的普通變數,可以不malloc動態申請記憶體,cpu會為這個結構體變數分配記憶體

如果定義的是乙個結構體的指標,cpu會為這個指標開闢記憶體,但是此時這個大小是4(如果是32位的cpu的話),

所以這個空間不足以儲存結構體的資料成員,就會引發錯誤,此時必須要malloc申請乙個,結構體型別大小的動態記憶體,用於資料成員儲存使用

拓展一下,malloc是動態申請,呼叫後會根據虛擬對映表去找物理記憶體,此時核心會先產生乙個請求記憶體異常,

然後根據這個異常再去為程式分配malloc的記憶體另外注意,呼叫malloc後一定要free,且在free掉之後要賦值null,這個操作是一對一的*/

struct person

;void

allocatmemory

(person*

* p )

//**p person的物件 *p物件的指標 p指標的指標

void

test01()

void

allocatmemref

(person*

& p)

void

test02()

//2、常量的引用

void

test03()

//常量的引用 修飾形參

void

showvalue

(const

int& val)

void

test04()

intmain()

C 基礎(05) 引用

1 引用就是給變數起乙個別名。其本質就是乙個指標常量 指標指向的位址不可以修改 int a 10 b 是a的別名。b和a所訪問的記憶體是相同的 int b a 2 注意事項 3 引用作為函式的引數 1 函式的引數傳遞可以為 值傳遞 位址傳遞 引用傳遞。其中值傳遞不會改變原來的變數內容,其相當於將原來...

C 基礎05 引用的基礎

變數名實質上是一段連續儲存空間的別名,是乙個標號 門牌號 程式中通過變數來申請並命名記憶體空間 通過變數的名字可以使用儲存空間 屬於c 編譯器對c的擴充套件 不能用c編譯器的角度思考引用 void main 普通引用必須初始化 void swap int a,int b 改變指標所指位址上的值 vo...

C 學習(三) 引用

為了說明c 中引用這個概念引入的意義,我們不妨從乙個最基礎的c語言交換兩個變數的值的函式說起 swap int a,int b 呼叫時,使用如下語句 swap a,b 這裡,傳遞的是變數a和b的位址,我們要交換a和b的值,函式卻用的是a和b的位址作為引數,感覺沒有那麼直觀形象。c 引入了 引用 這個...