亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于指針的引用,有疑惑

關于指針的引用,有疑惑

C++
103945962 2018-05-08 14:14:04
為什么count不用指針作為參數,而arr必須要用指針作為參數。arr1的引用為什么不是getMaxOrMin(&arr1, 4, isMax)
查看完整描述

2 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

你沒搞懂的好像是“數組傳參”:

在 C++ 中,當想要向函數中傳入數組時,數組在傳參時會隱式轉型為指向其首元素的指針,函數實際上得到的是這個指針。所以函數聲明中的第一個形參要聲明為 int 指針類型。

main 函數中的 getMaxOrMin(arr1, ...) 這里就是函數調用,這里傳入數組直接寫數組名就可以了。


這里發生的只是數組傳參,和“引用”沒有關系。 不要搞混了,& 這個符號不是只有“引用”這一個含義:

當聲明一個變量時,變量名前有 & 修飾表示這個變量是“引用類型”。

而在使用變量時,前面的 & 是“解引用(或稱取地址)運算符”,用來得到該變量的地址。

所以不要看到 & 就只想“引用”。


上面解釋了為什么“arr必須要用指針作為參數”,那么“為什么count不用指針作為參數”:

函數的這第二個參數,你打算傳入整形值,那么形參就聲明為對應的 int 就可以了。


你最好去梳理下關于形參的一些知識:普通類型形參、指針類型形參、引用類型形參,理解下它們的作用和意義。你好像把這些搞混了。

查看完整回答
反對 回復 2018-05-18
?
AAnonymous

TA貢獻62條經驗 獲得超31個贊

你這里`&`不是引用,是取地址符。即使你函數聲明為引用,調用時傳實參也不用加 `&`


所以,Google C++ Code Style 里建議建議不要使用非const引用形參,閱讀時容易產生歧義

查看完整回答
反對 回復 2018-05-18
  • 2 回答
  • 0 關注
  • 1049 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號