本质:函数传参的本质是变量间的赋值操作,数组名本质是首元素的地址,传递数组的首地址,我们定义指针来接收接口。
// // 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语言中的数组传参很重要,数组传参本质其实还是传递的地址,在函数中有两种方式书写,一种是通过 *,一种是同通过数组的形式 类型 []。