前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言:数组作为函数参数(数组元素做实参,数组名称做形参)

C语言:数组作为函数参数(数组元素做实参,数组名称做形参)

作者头像
岳泽以
发布2022-10-26 16:10:52
2.8K0
发布2022-10-26 16:10:52
举报
文章被收录于专栏:岳泽以博客

数组元素的值做实参

数组元素作为实参时,将数组元素的值传递给形参,传递的方向是从实参向形参的单向值传递。

例:编写函数求一维数组的最大值。

代码语言:javascript
复制
#include<stdio.h>
int main(){
    int max(int a,int b);
    int a[]={2,5,12,78,3,5,78,34,10,9};
    int m=a[0];
    for(int i=0;i<=9;i++){
        if(max(m,a[i])>m)m=a[i];}
    printf("max=%d",m);
    return 0; 
}
int max(int a,int b){
    return a>b?a:b;
}

数组名称做形参

当数组作为形参时,虽然形式上还是数组,比如void sort(int arr[ ]),但是并不意味着真正建立了一个包含和实参数组大小相同的数组,在调用函数时也不对它分配存储单元,只是用array[ ]这样的数组形式表示array是一维数组名,来接收实参传来的地址,因此array中的方括号的数值并无实际作用,编译器对数组维度进行忽略。

例:

代码语言:javascript
复制
#include<stdio.h>
int main(){
    void fun(int a[]);
    int a[]={1,2,3,4,5,6,7,8,9,10};
    fun(a);
    for(int i=0;i<=9;i++){
        printf("%3d",a[i]); 
    }
    return 0;
}
void fun(int a[]){
    for(int i=0;i<=9;i++)
    a[i]=a[i]+10; 
}

注意

  • 用数组元素做实参时,向形参变量传递的是数组元素的值
  • 用数组名做函数实参时,向形参传递的是数组首元素的地址。
  • 数组名作为函数实参传递时,函数定义处作为接收参数的数组类型形参既可以指定长度也可以不指定长度。
  • 数组元素作为函数实参传递时,数组元素类型必须与形参数据类型一致
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组元素的值做实参
  • 数组名称做形参
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档