whyyouhitme_ 2018-03-22 12:34 采纳率: 22.2%
浏览 1513
已采纳

请问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条)

报告相同问题?

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题