#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 引入了 引用 這個...