为了账号安全,请及时绑定邮箱和手机立即绑定

数组后面为什么不加括号

  replaceMax(arr1[], arr2[0]  ); //将数组arr1和数组arr2的第一个元素传入函数中

为什么括号里第一个数组后面不加括号

正在回答

2 回答

被声明为数组的函数参数,会被当作指向数组元素的指针类型。

数组在作右值时会被自动转换成指向数组首元素的指针,用数组向函数传参的情形就是用作右值。

如果你问为什么传参时不带中括号,那是因为数组名就是arr,你在声明arr时需要在后面加上中括号(可能还有括号中的大小),这个括号用来表明你想将arr声明为数组,而使用数组名时就只需写arr这个名字就好了。 

在使用时也写上括号的话,括号中一定会有序号,如arr1[n],这是取出arr1中的第n个元素。请注意这些写法的区别。

回到这个题,replaceMax函数的第一个参数实际上是指向int的指针,而传入arr1也会被自动转换成指向arr1首元素的指针,这样 parameter 和 argument 的类型是匹配的。

【复制粘贴的】来自大佬@onemoo

1 回复 有任何疑惑可以回复我~

是将整个数组作为函数的参数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

数组后面为什么不加括号

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信