C++: 21---引用和指针
生活随笔
收集整理的這篇文章主要介紹了
C++: 21---引用和指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般說到誰和誰怎么樣,要么說兩者的相似點,要么兩者的區別,這里我們也要說二者的區別和聯系,同時,也不僅僅是區別和聯系這么簡單,因為你可能會發現在變量賦值,函數傳參這兩點還是有很多值得品一品的。
最直觀的賦值方面的區別
首先我們先說二者的區別和聯系。
(1)指針:指針是一個變量,只不過這個變量存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來的變量實質上是同一個東西,只不過是原變量的一個別名而已。如:
int a=1;int *p=&a;
int a=1;int &b=a;
上面定義了一個整形變量和一個指針變量p,該指針變量指向a的存儲單元,即p的值是a存儲單元的地址。
而下面2句定義了一個整形變量a和這個整形a的引用b,事實上a和b是同一個東西,在內存占有同一個存儲單
元。
(2)引用不可以為空,當被創建的時候,必須初始化,而指針可以是空值,可以在任何時候被初始化。
(3)可以有const指針,但是沒有const引用;
(4)指針可以有多級,但是引用只能是一級(int **p;合法 而 int &&a是不合法的)
(5)指針的值可以為空,但是引用的值不能為NULL,并且引用在定義的時候必須初始化;
(6)指針的值在初始化后可以改變,即指向其它的存儲單元,而引用在進行初始化后就不會再改變了。
(7)”sizeof引
總結
以上是生活随笔為你收集整理的C++: 21---引用和指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis:19---常用功能之(Hyp
- 下一篇: s3c2440移植MQTT