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