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

【九月打卡】第17天 【养成记】嵌入式挑战第17天,函数传参之数组传递

标签:
嵌入式

课程信息

课程内容概述

1. 概述

本质:函数传参的本质是变量间的赋值操作,数组名本质是首元素的地址,传递数组的首地址,我们定义指针来接收接口。

2. 数组传递

2.1 代码演示

//
// Created by au on 2022/9/15.
//
#include <stdio.h>


void input_array(int * array, int len){
    printf("请输入%d数组的元素(正整数): ", len);
    for (int i = 0; i < len; ++i) {
        scanf("%d", &array[i]);
    }
}

void output_array(int * array,const int len){
//    int len = sizeof(array) / sizeof(array[0]); todo 这个计算结果好像不对,最后看看为啥
//    printf("len: %d", len);
    printf("您输入的数组元素为:");
    for (int i = 0; i < len; ++i) {
        printf("%d ", array[i]);
    }
    printf("\n");
    return;
}

int find_max(int * array, const int len){
    int max_value = 0;
//    int len = sizeof(array) / sizeof(array[0]); todo 这个计算结果好像不对,最后看看为啥
    for (int i = 0; i < len; ++i) {
        if (array[i] >= max_value) {
            max_value = array[i];
        }
    }
    return max_value;
}

/**
 * int a[5];

// 1.设计一个input_array(),自己定义参数和返回值,输⼊数据存放到数组a中.
// 2.设计一个output_array(),自己定义参数和返回值,输出数组a的内容.
// 3.设计一个find_max(),自己定义参数和返回值,找到数组中的最大值,并返回给main函数输出。
 * @return
 */
int main()
{
    int len = 5;
    int a[len];
    input_array(a, len);

    output_array(a, len);
    int max_value = find_max(a, len);
    printf("数组中最大值为%d\n", max_value);
}

运行结果

请输入5数组的元素(正整数):15 26 45 78 99
 您输入的数组元素为:15 26 45 78 99
数组中最大值为99


请输入5数组的元素(正整数):5 9 45 1 6
 您输入的数组元素为:5 9 45 1 6
数组中最大值为45

学习心得

C语言中的数组传参很重要,数组传参本质其实还是传递的地址,在函数中有两种方式书写,一种是通过 *,一种是同通过数组的形式 类型 []。

课程截图

图片描述


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消