引用交換,部分時候代替指標
#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類資料。常量指標本身是可...