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)显卡