使用 C 语言复习数据结构的时候,最常用到的 C 语言中的两个对于初学者容易弄不明白的概念一个是指针 Pointer,另一个就是结构体 Struct了,这里专门整理并系统复习了 C 语言中结构体相关概念与使用
定义结构
C 中一个结构体定义如下
| 1 | struct tag { member-list } variable-list ; | 
其中struct为结构体关键字,tag为结构体的标志,member-list为结构体所有成员声明,variable-list为结构体声明变量,在声明成员变量时只能声明变量类型与变量名称,不能初始化值
定义举例
这里具几例结构体定义的方法
前无标志,后有声明
| 1 | struct{ | 
这个结构体拥有三个成员,但是没有指明其标签,声明了结构体变量为 s1,这样可以直接使用s1来访问这个结构体,但是后面无法在声明新的结构体变量
前有标志,后无声明
| 1 | struct SIMPLE{ | 
这个结构体同样拥有三个成员,虽然在定义结构时没有顺便声明变量,但是后面可以使用struct [tag]来声明变量,这里使用struct SIMPLE t1, t2[20], *t3声明了三个变量,分别为单个结构体,结构体数组,和指向单个结构体的指针
使用 typedef 定义
| 1 | typedef struct Simple{ | 
使用typedef声明结构体后,后面的Simple2就不再像前面的是声明一个此结构体变量了,而是可以直接通过Simple2 [name]来在后面声明新的此结构体变量。这里Simple2相当于struct Simple
更多 typedef 定义
| 1 | typedef struct Student{ | 
这里在使用typedef声明一个Student结构体后,还使用stu, *pstu, stus[10]以让我们在后面方便的使用stu, pstu, stus分别声明一个结构体变量,结构体指针,结构体数组
结构体的访问
对于结构体变量类型的不同,有两种对结构体成员的访问方式,直接访问和间接访问,直接访问作用于普通变量,间接访问作用于结构体指针变量
| 1 | struct SIMPLE{ |