为什么count不用指针作为参数,而arr必须要用指针作为参数。arr1的引用为什么不是getMaxOrMin(&arr1, 4, isMax)
2 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
你没搞懂的好像是“数组传参”:
在 C++ 中,当想要向函数中传入数组时,数组在传参时会隐式转型为指向其首元素的指针,函数实际上得到的是这个指针。所以函数声明中的第一个形参要声明为 int 指针类型。
main 函数中的 getMaxOrMin(arr1, ...) 这里就是函数调用,这里传入数组直接写数组名就可以了。
这里发生的只是数组传参,和“引用”没有关系。 不要搞混了,& 这个符号不是只有“引用”这一个含义:
当声明一个变量时,变量名前有 & 修饰表示这个变量是“引用类型”。
而在使用变量时,前面的 & 是“解引用(或称取地址)运算符”,用来得到该变量的地址。
所以不要看到 & 就只想“引用”。
上面解释了为什么“arr必须要用指针作为参数”,那么“为什么count不用指针作为参数”:
函数的这第二个参数,你打算传入整形值,那么形参就声明为对应的 int 就可以了。
你最好去梳理下关于形参的一些知识:普通类型形参、指针类型形参、引用类型形参,理解下它们的作用和意义。你好像把这些搞混了。
AAnonymous
TA贡献62条经验 获得超31个赞
你这里`&`不是引用,是取地址符。即使你函数声明为引用,调用时传实参也不用加 `&`
所以,Google C++ Code Style 里建议建议不要使用非const引用形参,阅读时容易产生歧义
- 2 回答
- 0 关注
- 974 浏览
添加回答
举报
0/150
提交
取消