whyyouhitme_ 2018-03-22 12:34 采纳率: 57.1%
浏览 1509
已采纳

请问C语言中两个数组作为形参,且需要指出它们的长度。书写格式是?

void read_cards(int str_r[],int n,int str_s[],int m)
这样对吗?

  • 写回答

8条回答 默认 最新

  • -iostream- 2018-03-23 02:14
    关注

    函数的参数和返回值都不能是数组。如果需要把一个数组提供给函数进行使用,则只能提供数组的首指针,如果需要提供数组的长度,则通常的做法是将数组长度作为另一个int参数提供给函数。例如:
    void arr_manager(int * ,int);
    int main()
    {
    int arr[10]; //声明一个int类型的数组
    int n=10;
    ...
    arr_manager(arr,n); //或者直接 arr_manager(arr,10);
    }
    void arr_manager(int * arr,int n)
    {
    arr[3]=5; //可以直接用数组表示法访问
    *(arr+5)=4;
    for(int i=0;i<n;i++)
    {
    ...
    }
    }
    反正,简而言之,数组整体是不能作为参数的,但是通过提供数组首地址可以实现传递数组的实际功能。如果不想在函数内部修改数组,出于保护数据的目的,可以将函数参数声明为const 指针,例如:
    void arr_manager(const int * arr,int n);
    以上都是我辛辛苦苦一个字一个字打的,如果有帮助记得采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮