"C语言结构体与共用体要点详解:定义、声明、组成、变量类型及存储空间"

版权申诉
0 下载量 44 浏览量 更新于2024-02-21 收藏 39KB DOC 举报
; char name[20]; char sex;int age; float score; char addr[30];} student1, student2; 3.还可以在定义结构体类型的同时定义结构体变量struct 结构体名{成员表列}变量名表列;例如:struct student{int num; char name[20]; char sex;int age; float score; char addr[30];} student1, student2; 三、引用结构体成员的方法 结构体类型变量名.成员名;四、结构体的初始化赋值方法1、顺序初始化赋值; student1={1001,"liming",'M',18,95.5,"Beijing"};初始化赋值的成员个数必须和结构体类型中的成员个数相同,而且应该按相同的次序。2、赋值初始化; student1.num=1001; student1.name="liming"; student1.sex='M'; student1.age=18; student1.score=95.5; student1.addr="Beijing";五、结构体数组举例: struct student student1,student2,student[50]; 六、结构体嵌套定义的说明1、定义 含有其他类型成员的结构体如: struct teacher{int num; char name[20]; char sex;int age; float salary;}; struct student{int num; char name[20]; char sex;int age; float score; char addr[30];struct teacher t};注意:指定时可加个 struct 2、引用结构体嵌套的成员student1.t.num=1001; student1.t.name="liming"; student1.t.sex='M'; student1.t.age=30; student1.t.salary=3000;七、结构体指针举例: struct student *p; 八、共用体〔union〕的概念与用法共用体〔union〕也是一种复合类型,它允许在同一存储单元中存放不同类型的成员。 1、声明共用体的一般形式:union 共用体名{成员表列}; 2 / 18 };声明各成员的形式:类型名 成员名;例如:union example{ short k; int i; float j;};3、定义共用体类型变量的方法union 共用体名 变量名表列; 例如:union example a, *b;四、引用共用体成员的方法 共用体类型变量名.成员名;五、共用体的初始化赋值方法 先声明共用体类型再定义变量名union example a, *b;a.k=3; a.i=5; a.j=3.1; a.k=3; b->j=4.5;六、共用体数组举例:union example a[50];一、引言 结构体与共用体是 C 语言中非常重要的知识点,它们可以非常灵活地组织数据,使得程序在处理各种类型的数据时更加高效。在本文中,将重点介绍结构体与共用体的基本概念、定义方法、初始化赋值、数组和指针等重要内容。希望通过本文的学习,读者能够对结构体与共用体有更深入的理解和掌握。 二、结构体要点 1.结构体是一种数据类型,它将互相关联的数据组合成一个整体。 2.结构体类型的声明形式为:struct 结构体名{成员表列}; 3.可以先声明结构体类型再定义变量名,也可以在声明类型的同时定义变量,还可以在定义结构体类型的同时定义结构体变量; 4.结构体成员的引用方法为:结构体类型变量名.成员名; 5.结构体的初始化赋值可以采用顺序初始化赋值或赋值初始化; 6.可以定义结构体数组和结构体指针; 7.结构体也可以嵌套定义,引用嵌套结构体成员时需要加上“.”或“->”标识。 三、共用体要点 1.共用体允许在同一存储单元中存放不同类型的成员。 2.共用体类型的声明形式为:union 共用体名{成员表列}; 3.可以先声明共用体类型再定义变量名; 4.共用体成员的引用方法为:共用体类型变量名.成员名; 5.共用体的初始化赋值需要注意成员的覆盖情况; 6.可以定义共用体数组和共用体指针。 四、总结 本文介绍了C语言中结构体与共用体的基本概念、定义方法、初始化赋值、数组和指针等要点。结构体用来组合不同类型的数据成一个整体,方便程序处理;共用体则允许在同一存储单元中存放不同类型的成员,节省内存空间。通过本文的学习,相信读者对结构体与共用体有了更深入的理解和掌握,能够灵活运用于实际的编程中。