是一种常见的编程技巧,可以通过传递指针参数来修改结构数组的值。下面是一个完善且全面的答案:
在C语言中,可以使用函数中的指针来填充结构数组。结构数组是一种包含多个结构体元素的数组,每个结构体元素可以包含多个不同类型的数据。通过使用指针参数,我们可以在函数中修改结构数组的值,而无需进行复制操作。
下面是一个示例代码,演示了如何使用函数中的指针填充结构数组:
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
// 填充结构数组的函数
void fillStructArray(struct Person* array, int size) {
for (int i = 0; i < size; i++) {
printf("请输入第 %d 个人的姓名:", i+1);
scanf("%s", array[i].name);
printf("请输入第 %d 个人的年龄:", i+1);
scanf("%d", &(array[i].age));
}
}
// 打印结构数组的函数
void printStructArray(struct Person* array, int size) {
for (int i = 0; i < size; i++) {
printf("第 %d 个人的姓名:%s\n", i+1, array[i].name);
printf("第 %d 个人的年龄:%d\n", i+1, array[i].age);
}
}
int main() {
int size;
printf("请输入结构数组的大小:");
scanf("%d", &size);
// 创建结构数组
struct Person array[size];
// 使用函数中的指针填充结构数组
fillStructArray(array, size);
// 打印结构数组的值
printStructArray(array, size);
return 0;
}
在上面的示例代码中,我们首先定义了一个名为Person
的结构体,包含了一个name
字符串数组和一个age
整数。然后,我们定义了两个函数fillStructArray
和printStructArray
,分别用于填充和打印结构数组的值。
在fillStructArray
函数中,我们通过循环遍历结构数组,并使用scanf
函数从用户输入中获取每个人的姓名和年龄,然后将其填充到结构数组中。
在printStructArray
函数中,我们同样通过循环遍历结构数组,并使用printf
函数打印每个人的姓名和年龄。
在main
函数中,我们首先获取用户输入的结构数组大小,并根据该大小创建了结构数组。然后,我们调用fillStructArray
函数来填充结构数组的值,最后调用printStructArray
函数来打印结构数组的值。
这样,我们就通过函数中的指针成功地填充了结构数组,并且可以在其他地方使用该结构数组的值。
腾讯云相关产品和产品介绍链接地址:
云+社区技术沙龙[第14期]
T-Day
云+社区技术沙龙 [第31期]
Techo Day
serverless days
云+社区技术沙龙[第8期]
技术创作101训练营
领取专属 10元无门槛券
手把手带您无忧上云