课程名称:物联网/嵌入式工程师
章节名称:第4周之第四讲 1-8 至 1-10 C语言中的函数:函数传参的数组
讲师姓名:大白老师
本质:函数传参的本质是变量间的赋值操作,数组名本质是首元素的地址,传递数组的首地址,我们定义指针来接收接口。
#include <stdio.h> // int *p = a; void input_array(int *p,const int plen) { int i = 0; printf("please input %d data : ",plen); for(i = 0;i < plen;i++) { scanf("%d",&p[i]); } } // int *p = a; void output_array(int *p,const int plen) { int i = 0; for(i = 0;i < plen;i++) { printf("%d ",p[i]); } printf("\n"); return; } int main(void) { int a[5] = {0}; int len = sizeof(a)/sizeof(a[0]); input_array(a,len); output_array(a,len); return 0; }
#include <stdio.h> void input_array(int *pInt, const int pLength) { printf("请输入%d个数组元素:\n", pLength); for (int i = 0; i < pLength; ++i) { scanf("%d", &pInt[i]); } return; } void output_array(int *pInt, const int pLength) { for (int i = 0; i < pLength; ++i) { printf("%d \t", pInt[i]); } printf("\n"); return; } int find_max(int *pInt, const int pLength) { int max = pInt[0]; for (int i = 0; i < pLength; ++i) { max = max > pInt[i] ? max : pInt[i]; } return max; } int main() { int a[5] = {0}; int length = sizeof(a) / sizeof(a[0]); int max = 0; input_array(a, length); output_array(a, length); max = find_max(a, length); printf("max = %d\n", max); return 0; }
通过函数传参数组方式,明白了传递的是指针而不是真数组。