📅  最后修改于: 2023-12-03 15:00:11.827000             🧑  作者: Mango
在C语言中,结构体可以嵌套其他结构体,这样可以使结构体更具有灵活性和可扩展性。本文将介绍C语言中的嵌套结构体用法,以及如何定义和访问嵌套结构体。
嵌套结构体就是结构体中包含其他结构体的成员,例如:
struct student {
char name[20];
int age;
struct address home_address;
};
struct address {
char city[20];
char street[50];
int house_no;
};
在这个例子中,嵌套结构体address
是student
结构体的一个成员。因此,定义address
结构体必须在student
结构体定义之前。
要访问嵌套结构体的成员,可以使用两个.
运算符。例如,要访问student
结构体中的home_address
结构体中的city
成员,可以使用以下代码:
struct student s;
strcpy(s.home_address.city, "New York");
还可以使用指向嵌套结构体的指针来访问结构体成员,例如:
struct student *p;
p = &s;
strcpy(p->home_address.city, "New York");
初始化嵌套结构体的方法与其他结构体相同。例如,初始化student
结构体中的home_address
结构体的代码如下:
struct student s = {
"John",
20,
{"New York", "5th Avenue", 10}
};
以下是一个完整的示例程序,演示如何定义和访问嵌套结构体:
#include <stdio.h>
#include <string.h>
struct address {
char city[20];
char street[50];
int house_no;
};
struct student {
char name[20];
int age;
struct address home_address;
};
int main()
{
struct student s = {
"John",
20,
{"New York", "5th Avenue", 10}
};
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("Home address: %s %s %d\n", s.home_address.city, s.home_address.street, s.home_address.house_no);
return 0;
}
输出结果为:
Name: John
Age: 20
Home address: New York 5th Avenue 10
在C语言中,结构体可以嵌套其他结构体,这样可以使结构体更具有灵活性和可扩展性。通过本文的介绍,您应该已经掌握了如何定义和访问嵌套结构体的方法。希望本文对您有所帮助!