2 回答

TA貢獻883條經驗 獲得超454個贊
你沒搞懂的好像是“數(shù)組傳參”:
在 C++ 中,當想要向函數(shù)中傳入數(shù)組時,數(shù)組在傳參時會隱式轉型為指向其首元素的指針,函數(shù)實際上得到的是這個指針。所以函數(shù)聲明中的第一個形參要聲明為 int 指針類型。
main 函數(shù)中的 getMaxOrMin(arr1, ...) 這里就是函數(shù)調用,這里傳入數(shù)組直接寫數(shù)組名就可以了。
這里發(fā)生的只是數(shù)組傳參,和“引用”沒有關系。 不要搞混了,& 這個符號不是只有“引用”這一個含義:
當聲明一個變量時,變量名前有 & 修飾表示這個變量是“引用類型”。
而在使用變量時,前面的 & 是“解引用(或稱取地址)運算符”,用來得到該變量的地址。
所以不要看到 & 就只想“引用”。
上面解釋了為什么“arr必須要用指針作為參數(shù)”,那么“為什么count不用指針作為參數(shù)”:
函數(shù)的這第二個參數(shù),你打算傳入整形值,那么形參就聲明為對應的 int 就可以了。
你最好去梳理下關于形參的一些知識:普通類型形參、指針類型形參、引用類型形參,理解下它們的作用和意義。你好像把這些搞混了。

TA貢獻62條經驗 獲得超31個贊
你這里`&`不是引用,是取地址符。即使你函數(shù)聲明為引用,調用時傳實參也不用加 `&`
所以,Google C++ Code Style 里建議建議不要使用非const引用形參,閱讀時容易產生歧義
- 2 回答
- 0 關注
- 1044 瀏覽
添加回答
舉報