📅  最后修改于: 2023-12-03 15:14:25.336000             🧑  作者: Mango
在C语言中,结构体是一种用户自定义的数据类型,用于组合不同类型的数据项。而结构数组则是由多个相同类型的结构体元素组成的数组。下面将介绍C中结构数组的概念以及如何使用它们。
定义结构数组有两种方法:
struct student {
char *name;
int age;
};
struct student roster[5];
上面的代码定义了一个名为student
的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student
结构体组成的数组,名为roster
。
struct student {
char *name;
int age;
} roster[5];
与方法一相比,方法二省略了结构体定义和变量定义,把两者结合起来。
访问结构数组的元素有两种方法:
struct student {
char *name;
int age;
};
struct student roster[5];
roster[0].name = "Bob";
roster[0].age = 20;
上面的代码定义了一个名为student
的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student
结构体组成的数组,名为roster
。最后我们设置了roster
数组的第一个元素的name
为"Bob",age
为20。
struct student {
char *name;
int age;
} roster[5];
(roster+0)->name = "Bob";
(roster+0)->age = 20;
与方法一相比,方法二使用了指针运算符->
,通过指向第一个元素的指针roster
访问结构数组元素的内容。
可以使用循环遍历结构数组的元素。
struct student {
char *name;
int age;
} roster[5];
for (int i = 0; i < 5; i++) {
printf("%s is %d years old.\n", roster[i].name, roster[i].age);
}
上面的代码定义了一个名为student
的结构体,该结构体包含一个指向字符型的指针和一个整型变量。然后我们定义了一个由5个student
结构体组成的数组,名为roster
。最后我们使用循环遍历roster
数组的元素,并打印每一个元素的name
和age
。