结构体类型与结构体变量
7.1 结构体概念
结构体(struct)是由⼀系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语⾔中,结构体(struct)指的是⼀种数据结构,是C语⾔中聚合数据类型(aggregate data type)的⼀类。结构体可以被声明为变量、指针或数组等,⽤以实现较复杂的数据结构。结构体同时也是⼀些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员⼀般⽤名字访问。
7.2 结构体类型的定义
C 数组允许定义可存储相同类型数据项的变量,结构体是 C 编程中另⼀种⽤户⾃定义的可⽤的数据类型,它允许您存储不同类型的数据项。
结构体⽤于表⽰⼀条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:
Title
Author
Subject
c语言struct头文件Book ID
为了定义结构体,您必须使⽤ struct 语句。struct 语句定义了⼀个包含多个成员的新的数据类型,struct 语句的格式如下:
其中,struct 是定义结构体类型的关键字,定义结构体必不可少;结构体名符合标识符的命名规则,其次结构体名命名有意义。
struct 结构体名:表⽰⼀种结构体类型。
结构体类型定义注意的事项:
1. 结构体类型定义完成,系统不会为其分配内存空间,仅仅只是构造出了⼀种类型,如果要使⽤该类型则
需要定义该类型的变量。
2. 结构体类型的数据⽀持嵌套,但是要在嵌套之前完成被嵌套结构体类型的定义。
3. 在定义结构体类型的时候,结构体外⾯的⼤括号不能省略
4. 构造的类型⼀般放在全局,也就是在头⽂件与主函数之间,类型定义的位置跟变量定义的位置类似具有
全局和局部的效果,也就是说具有作⽤域。
这个声明描述了⼀个由两个字符数组和⼀个float变量组成的结构体,但是注意,他并没有创建⼀个实际的数据对象,⽽是描述了⼀个组成这类对象的元素,【因此,我们也有时候将结构体声明叫做模板,因为它勾勒出数据该如何存储,并没有实例化数据对象】。
7.3 结构体类型变量的定义,初始化,赋值,引⽤
7.3.1 结构体类型变量的定义
之前我们结构体类型的定义(结构体的声明)只是告诉编译器该如何表⽰数据,但是它没有让计算机为其分配空间。我们要使⽤结构体,那么就需要创建变量,也就是结构体变量,结构体变量的定义有三种⽅式。
1. 在定义结构体类型的同时,定义结构体类型的变量
2. 在定义结构体类型的同时,不加结构体名,定义结构体类型的变量
3. 先定义结构体类型然后定义结构体类型的变量
其中,在定义结构体类型变量的时候,可以使⽤typedef关键字对定义的结构体类型进⾏重新命名,如下:
结构体的成员可以包含其他结构体,也可以包含指向⾃⼰结构体类型的指针,⽽通常这种指针的应⽤是为了实现⼀些更⾼级的数据结构如链表和树等。如下为结构体类型的嵌套。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。