引用的本質(彙編 指標常量的實現)

2021-10-07 09:19:50 字數 1337 閱讀 2508

引用交換,部分時候代替指標

#include

void

swap

(int

&a,int

&b)int

main()

引用中的const

讓變數擁有唯讀屬性

int a=

1const

int&b = a;

int*p =

(int*)

&b;b =3;

//error,b唯讀

*p =3;

//ok

#include

void

example()

void

demo()

intmain

(int argc,

char

*ar**)

#include

struct tref

;int

main

(int argc,

char

*ar**)

;printf

("sizeof(char&) = %d\n"

,sizeof

(char&)

);//1printf

("sizeof(rc) = %d\n"

,sizeof

(rc));

//1printf

("sizeof(tref) = %d\n"

,sizeof

(tref));

//8???????????????????

printf

("sizeof(ref.r) = %d\n"

,sizeof

(ref.r));

//1return0;

}c++用指標實現引用

type& name: === type* const name;

void f(int& a)

void f(int* const a)

引用的意義(會變薄角度分析本質是指標的實現)

1.多數情況代替指標

2.避開指標操作不當帶來記憶體錯誤

3.簡單

注意

int

&demo()

不能返回非靜態區域性變數的引用,值被銷毀了。

大總結:

1引用作為變數別名,存在代替指標

2const引用使變數具有唯讀屬性

3引用在編譯器內部實現為指標常量的實現,本質為指標

4避免記憶體出錯

引用,指標,常量引用,常量指標,指標常量的區別

1.指標 指標代表乙個變數的位址 例如 int a 2,b 1,pi a pi b 2.引用 引用即針對乙個變數的別名,引用必須被初始化,引用作為引數 形參 時,不會像指標一樣使用儲存單元,更不會像值傳遞一樣建立該引數的副本,提高空間 時間效率。例如 int a 2,b a 3.常量引用 格式為 c...

關於常量指標的引用

int main const int const p n 既然有指向指標的引用,就不難想到指向常量指標的引用。於是就有如下嘗試 const int r p 結果報錯如下 將 const int 型別的引用繫結到 const int const 型別的初始值設定項時,限定符被丟棄 也就是說由於頂層co...

C 常量指標 指標常量 引用和常引用的用法解析

今天學習c 的常量型別和引用,其中常量指標 指標常量 引用和常引用幾個概念較為接近,特地整理一下。1.常量指標 pointer to const 常量指標,顧名思義,是指向常量的指標,其定義的一般形式為 const t pointer name t為資料型別,target為t類資料。常量指標本身是可...