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

取樣示波器的技術(shù)原理和應(yīng)用場(chǎng)景
頻域示波器的技術(shù)原理和應(yīng)用場(chǎng)景
數(shù)據(jù)記錄儀的計(jì)數(shù)原理和應(yīng)用場(chǎng)景
敏捷合成器的技術(shù)原理和應(yīng)用場(chǎng)景
脈沖信號(hào)分析儀?的原理和應(yīng)用場(chǎng)景
混合信號(hào)分析儀的原理和應(yīng)用場(chǎng)景
多用示波器的原理和應(yīng)用場(chǎng)景
倍頻器的技術(shù)原理和應(yīng)用場(chǎng)景
系統(tǒng)放大器的技術(shù)原理和應(yīng)用場(chǎng)景
實(shí)時(shí)示波器的技術(shù)原理和應(yīng)用場(chǎng)景
源測(cè)量單元設(shè)備的技術(shù)原理和應(yīng)用場(chǎng)景
超聲波測(cè)厚儀的技術(shù)原理和應(yīng)用場(chǎng)景
面試常考+1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

評(píng)論