• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C调用函数的形参类型怎么表达为数组,调用的时候实参为数组

676d355b4883e879 2020-09-24 浏览量:638

如图所示,这是个调用函数,就是怎么写形参?来实现调用此函数的时候形参如(100,100,TEXT,ARRAY)直接调用就可,这里的TEXT和ARRAY为定义好的数组

QQ截图20200924104114.png

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 数组形参实际是通过指针传递的,不过需要注意这时候是可能可以修改原数组的的

    数组名其实是指向数组头元素的指针。

    不过一般对数组调用还需要传入数据元素个数参数

    比如标准的接收不定参数个数的函数定义是

    int ABC( int len int * P){
     ...
    }

    比如标准命令行程序的入口是
    int main(int argc char** argv)
    
    int main(int argc char* argv[])
    类似的形式


    • 发布于 2020-09-24
    • 举报
    • 评论 3
    • 1
    • 0
676d355b4883e879 回复了 xdsnet:不明白你讲的这个跟我的提问的问题有什么直接的关系 回复
xdsnet 回复了 676d355b4883e879:就是说数组形参可以直接是数组形式,或者说指针,字符串是特殊的数组,可以不传入长度,根据\0字符最先出现位置,自行计算出长度 回复
676d355b4883e879 回复了 xdsnet:我的疑问是形参如何配置可以实现传入的是数组而不是数组的地址。 回复

其他答案 数量:2
  • 就是说如何让传入的实参变量是数组本身而不是数组的首地址(或者指向数组的指针)。
    • 发布于2020-09-24
    • 举报
    • 评论 2
    • 0
    • 0
xdsnet 回复了 676d355b4883e879 :什么叫数组本身,什么叫数组的首地址? 其实C函数中形参能够传递的数据类型是很有限的,除了几个基本形式外,其他的都是传地址,对数组、结构体等,其实本质都是传地址 回复
xdsnet 回复了 676d355b4883e879 :现在的你给出的函数都直接可以传入TEXT和ARRAY为参数,即用(100,100,TEXT,ARRAY)为实参是可以完成调用的 回复

  • 传指针就行,这种函数一般设计的时候参数就是指针和长度,返回值是写成功的个数或者错误代码
    • 发布于2020-09-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C调用函数的形参类型怎么表达为数组,调用的时候实参为数组