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