• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

关于指针的引用,有疑惑

为什么count不用指针作为参数,而arr必须要用指针作为参数。
arr1的引用为什么不是getMaxOrMin(&arr1, 4, isMax)
025004fl8pzqhairbifrbg.jpg

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与2

你没搞懂的好像是“数组传参”:
在 C++ 中,当想要向函数中传入数组时,数组在传参时会隐式转型为指向其首元素的指针,函数实际上得到的是这个指针。所以函数声明中的第一个形参要声明为 int 指针类型。
main 函数中的 getMaxOrMin(arr1, ...) 这里就是函数调用,这里传入数组直接写数组名就可以了。



这里发生的只是数组传参,和“引用”没有关系。 不要搞混了,& 这个符号不是只有“引用”这一个含义:

当声明一个变量时,变量名前有 & 修饰表示这个变量是“引用类型”。
而在使用变量时,前面的 & 是“解引用(或称取地址)运算符”,用来得到该变量的地址。
所以不要看到 & 就只想“引用”。


上面解释了为什么“arr必须要用指针作为参数”,那么“为什么count不用指针作为参数”:
函数的这第二个参数,你打算传入整形值,那么形参就声明为对应的 int 就可以了。


你最好去梳理下关于形参的一些知识:普通类型形参、指针类型形参、引用类型形参,理解下它们的作用和意义。你好像把这些搞混了。

使用道具 举报

你这里`&`不是引用,是取地址符。即使你函数声明为引用,调用时传实参也不用加 `&`


所以,Google C++ Code Style 里建议建议不要使用非const引用形参,阅读时容易产生歧义

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!