猿问
关于指针的引用,有疑惑
为什么count不用指针作为参数,而arr必须要用指针作为参数。
arr1的引用为什么不是getMaxOrMin(
&
arr1
, 4, isMax)
103945962
浏览 975
回答 2
2回答
onemoo
你没搞懂的好像是“数组传参”:在 C++ 中,当想要向函数中传入数组时,数组在传参时会隐式转型为指向其首元素的指针,函数实际上得到的是这个指针。所以函数声明中的第一个形参要声明为 int 指针类型。main 函数中的 getMaxOrMin(arr1, ...) 这里就是函数调用,这里传入数组直接写数组名就可以了。这里发生的只是数组传参,和“引用”没有关系。 不要搞混了,& 这个符号不是只有“引用”这一个含义:当声明一个变量时,变量名前有 & 修饰表示这个变量是“引用类型”。而在使用变量时,前面的 & 是“解引用(或称取地址)运算符”,用来得到该变量的地址。所以不要看到 & 就只想“引用”。上面解释了为什么“arr必须要用指针作为参数”,那么“为什么count不用指针作为参数”:函数的这第二个参数,你打算传入整形值,那么形参就声明为对应的 int 就可以了。你最好去梳理下关于形参的一些知识:普通类型形参、指针类型形参、引用类型形参,理解下它们的作用和意义。你好像把这些搞混了。
0
0
0
AAnonymous
你这里`&`不是引用,是取地址符。即使你函数声明为引用,调用时传实参也不用加 `&`所以,Google C++ Code Style 里建议建议不要使用非const引用形参,阅读时容易产生歧义
0
0
0
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
我要回答