先解決兩個疑問
◆ 指針和引用的不同之處是什么?
◆ 何時用用指針?何時用引用?
指針和引用的不同之處
看如下代碼:
指針是用來表示內存地址的,而指針這個整數正是被指向的變量地址。
而引用就是給變量重新起了一個名字,引用也就是“別名”。
不同之處
◆ 指針在聲明時可以暫時不初始化,當然每次使用指針時都要做檢查,以防出現空指針異常的問題0。而引用永遠都不會為空,它一定得代表某個對象。
◆ 指針存放的是地址,可以被重新賦值。而引用總是指向它最初代表的那個對象。
指針和引用使用場合
引用主要是作為函數的參數和返回值來使用的,看如下代碼:
通過vec[3] =3可改變vector容器的值,這是因為[]操作符返回的就是引用。也就是為內部的變量取了一個別名,還能讓[]操作符返回一個指針,即*vec[3]=3。實際上引用可以做的事情指針都可以做,那為什么還要使用引用?
總結
用恰當的工具做恰如其分的工作。
指針可以毫無約束的操作內存中的任何東西,功能十分強大,但也很危險,所以可以在恰當的時機使用引用。當你需要指向某個東西,絕不會讓其指向其它東西,例如有些函數參數為了避免拷貝可以使用引用,或者實現一個操作符而其語法需求無法由指針達成,例如vec[3]=3,可以使用引用,而其它任何時候,都要使用指針。
編輯:jq
-
內存
+關注
關注
8文章
3002瀏覽量
73884 -
函數
+關注
關注
3文章
4306瀏覽量
62430 -
代碼
+關注
關注
30文章
4748瀏覽量
68355 -
Vector
+關注
關注
3文章
56瀏覽量
8556
原文標題:C語言面試-指針和引用的使用場景?
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論