继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【养成记】嵌入式挑战第11天,第二周第四讲-函数传参之数组传递

慕粉152226940
关注TA
已关注
手记 72
粉丝 8
获赞 43

【养成记】嵌入式挑战第11天,第二周第四讲-函数传参之数组传递

课程章节

物联网/嵌入式工程师 第二周第四讲 1-9 函数传参之数组传递

课程内容

对C语言中的函数传参之数组传递做了介绍

学习笔记

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

2.2 数组传参的使用方式

2.2.1 使用数组传参方式一

图片描述

2.2.2 使用数组传参方式二

图片描述

课程评价

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

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP