C 语言结构体:数组、指针和数组指针详解及示例
C 语言结构体:数组、指针和数组指针详解及示例
本文详细讲解 C 语言中结构体数组、结构体指针和结构体数组指针的创建、赋值和访问操作,并提供一个示例程序来演示这些操作。
代码示例
#include <stdio.h>
#include <string.h>
// 定义结构体
typedef struct {
int id;
char name[20];
int age;
} Person;
int main() {
// 创建结构体数组
Person people[3];
// 赋值操作
people[0].id = 1;
strcpy(people[0].name, "Alice");
people[0].age = 20;
people[1].id = 2;
strcpy(people[1].name, "Bob");
people[1].age = 25;
people[2].id = 3;
strcpy(people[2].name, "Charlie");
people[2].age = 30;
// 访问操作
for (int i = 0; i < 3; i++) {
printf("Person %d: id=%d, name=%s, age=%d\n", i+1, people[i].id, people[i].name, people[i].age);
}
// 创建结构体指针
Person *personPtr;
// 赋值操作
personPtr = &people[0];
// 访问操作
printf("Person 1: id=%d, name=%s, age=%d\n", personPtr->id, personPtr->name, personPtr->age);
// 创建结构体数组指针
Person (*peoplePtr)[3];
// 赋值操作
peoplePtr = &people;
// 访问操作
for (int i = 0; i < 3; i++) {
printf("Person %d: id=%d, name=%s, age=%d\n", i+1, (*peoplePtr)[i].id, (*peoplePtr)[i].name, (*peoplePtr)[i].age);
}
return 0;
}
代码解析
-
结构体定义
- 使用
typedef定义了一个名为Person的结构体,包含id、name和age三个成员。
- 使用
-
结构体数组
- 使用
Person people[3]创建了一个包含 3 个Person结构体元素的数组people。 - 通过
people[i].member的方式访问数组中每个结构体的成员。
- 使用
-
结构体指针
- 使用
Person *personPtr创建了一个指向Person结构体的指针personPtr。 - 使用
&people[0]将指针指向people数组的第一个元素。 - 通过
personPtr->member的方式访问结构体成员。
- 使用
-
结构体数组指针
- 使用
Person (*peoplePtr)[3]创建了一个指向包含 3 个Person结构体元素的数组的指针peoplePtr。 - 使用
&people将指针指向people数组。 - 通过
(*peoplePtr)[i].member的方式访问数组中每个结构体的成员。
- 使用
总结
本文详细讲解了 C 语言中结构体数组、结构体指针和结构体数组指针的创建、赋值和访问操作,并提供了示例程序来演示这些操作。希望本文能够帮助读者更好地理解和使用结构体在 C 语言中的应用。
原文地址: https://www.cveoy.top/t/topic/o4cG 著作权归作者所有。请勿转载和采集!