课程章节:
课程名称:物联网/嵌入式工程师
章节名称:第4周之第四讲 1-8 至 1-10 C语言中的函数:函数传参的数组
讲师姓名:大白老师
课程内容:
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;
}
课程评价:
通过函数传参数组方式,明白了传递的是指针而不是真数组。