一. 定義
- 指針: 是一個變量,只不過這個變量存儲的是一個地址,指向內(nèi)存中的一個存儲單元.
2.引用: 跟原來的變量實質(zhì)是一個東西,只不過是原變量的一個別名
int a = 10; int *p = &a;
int a = 10; &b = a;
上面定義了一個整型變量和一個指針變量p,該指針變量指向a的存儲單元,即p的值是a存儲單元的地址.
下面定義了一個整型變量a和這個整型a的引用b, 事實上a和b是同一個東西,在內(nèi)存占有同一個存儲單元.
二. 區(qū)別
- 可以有const指針 但是沒有const引用
- 指針可以有多級, 但是引用只能有一級
- 指針的值可以為空,但是引用的值不能為空
- 指針的值在初始化的時候可以改變, 及指向其他的存儲單元,而引用在初始化后就不能再改變.
- 引用得到的是指向的變量的大小,指針得到的是指針本身的大小
- 指針 和 引用的自增++運算意義不一樣