手记

【备战春招】第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语言中的数组传参很重要,数组传参本质其实还是传递的地址,在函数中有两种方式书写,一种是通过 *,一种是同通过数组的形式 类型 []。

课程截图



0人推荐
随时随地看视频
慕课网APP