先解決兩個(gè)疑問
◆ 指針和引用的不同之處是什么?
◆ 何時(shí)用用指針?何時(shí)用引用?
指針和引用的不同之處
看如下代碼:
指針是用來表示內(nèi)存地址的,而指針這個(gè)整數(shù)正是被指向的變量地址。
而引用就是給變量重新起了一個(gè)名字,引用也就是“別名”。
不同之處
◆ 指針在聲明時(shí)可以暫時(shí)不初始化,當(dāng)然每次使用指針時(shí)都要做檢查,以防出現(xiàn)空指針異常的問題0。而引用永遠(yuǎn)都不會(huì)為空,它一定得代表某個(gè)對(duì)象。
◆ 指針存放的是地址,可以被重新賦值。而引用總是指向它最初代表的那個(gè)對(duì)象。
指針和引用使用場(chǎng)合
引用主要是作為函數(shù)的參數(shù)和返回值來使用的,看如下代碼:
通過vec[3] =3可改變vector容器的值,這是因?yàn)椋郏莶僮鞣祷氐木褪且谩R簿褪菫閮?nèi)部的變量取了一個(gè)別名,還能讓[]操作符返回一個(gè)指針,即*vec[3]=3。實(shí)際上引用可以做的事情指針都可以做,那為什么還要使用引用?
總結(jié)
用恰當(dāng)?shù)墓ぞ咦銮∪缙浞值墓ぷ鳌?/p>
指針可以毫無約束的操作內(nèi)存中的任何東西,功能十分強(qiáng)大,但也很危險(xiǎn),所以可以在恰當(dāng)?shù)臅r(shí)機(jī)使用引用。當(dāng)你需要指向某個(gè)東西,絕不會(huì)讓其指向其它東西,例如有些函數(shù)參數(shù)為了避免拷貝可以使用引用,或者實(shí)現(xiàn)一個(gè)操作符而其語法需求無法由指針達(dá)成,例如vec[3]=3,可以使用引用,而其它任何時(shí)候,都要使用指針。
編輯:jq
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3028瀏覽量
74097 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4333瀏覽量
62684 -
代碼
+關(guān)注
關(guān)注
30文章
4791瀏覽量
68678 -
Vector
+關(guān)注
關(guān)注
3文章
60瀏覽量
8623
原文標(biāo)題:C語言面試-指針和引用的使用場(chǎng)景?
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論