C语言结构体嵌套的用法(附带实例)
C语言中,结构体中的成员不仅可以是基本类型,也可以是结构体类型。
例如,定义一个电脑结构体类型,其中的成员包括电源、机箱、显示器和内置零部件。其中,内置零部件又属于一个结构体类型,包括 CPU、主板、显卡 3 个成员。电脑这样的结构体类型就是嵌套的结构体。
【实例】输出电脑零件。在本实例中,定义两个结构体类型,一个表示电脑零件,一个表示内置零件。其中,内置零件结构体是电脑零件结构中的成员。通过使用电脑零件结构类型表示电脑基本信息内容。
运行程序,结果为:
例如,定义一个电脑结构体类型,其中的成员包括电源、机箱、显示器和内置零部件。其中,内置零部件又属于一个结构体类型,包括 CPU、主板、显卡 3 个成员。电脑这样的结构体类型就是嵌套的结构体。
【实例】输出电脑零件。在本实例中,定义两个结构体类型,一个表示电脑零件,一个表示内置零件。其中,内置零件结构体是电脑零件结构中的成员。通过使用电脑零件结构类型表示电脑基本信息内容。
#include<stdio.h>
struct in /*电脑内置零件结构体*/
{
char in1[10];
char in2[10];
char in3[10];
};
struct out /*电脑零件结构体*/
{
char out1[30];
char out2[30];
char out3[30];
struct in ware;
} computer = { "电源","机箱","显示器",{"CPU","主板","显卡"} }; /*为结构体变量初始化*/
int main()
{
printf("外置设备: \n");
printf("(1)%s\n",computer.out1);
printf("(2)%s\n",computer.out2);
printf("(3)%s\n",computer.out3);
printf("内置设备: \n");
printf("(1)%s\n",computer.ware.in1);
printf("(2)%s\n",computer.ware.in2);
printf("(3)%s\n",computer.ware.in3);
return 0;
}
程序中:
- 为嵌套结构体类型 struct out 初始化时要注意,因为内置零件仍然是一个结构体,所以要使用大括号将赋值的数据包含在内;
- 引用成员结构体变量的成员时,computer.ware 表示引用 computer 变量中的成员 ware,computer.ware.in1 表示引用 computer 变量中结构体变量 ware 的成员 in1。
运行程序,结果为:
外置设备:
(1)电源
(2)机箱
(3)显示器
内置设备:
(1)CPU
(2)主板
(3)显卡
ICP备案:
公安联网备案: