结构体
#C
2024-09-05
声明方式
结构体常见的两种声明方式,其余稀奇古怪的皆不谈。
1 |
|
上面这种方式最为常见,在创建结构体的时候,必须是 struct Node 才能创建。如果你觉得每次创建都要加上 struct 关键字很麻烦,那可以起别名,就像下面这样。
1 |
|
这其中的原理是什么呢 ?
typedef 是给类型起别名的,因此我们的下面这部分其实代表的是一个自定义类型,因此为这个自定义类型取名为 Node,方便以后使用。
1 |
|
字节对齐
这个已在其他文章中讲过,不必多言,这里重点说一说结构体字节对齐的特点:
- 一片连续的内存空间
- 成员是按声明的顺序依次存放
- 在结构体的中间或者后面可能会存在填充
- 填充的目的是为了对齐,对齐的目的是为了更快的访问数据项
操作
如果想把 一个结构体所有的数据全部 复制给另一个数据,只需要通过 = 赋值即可,而数组就做不到了。
1 |
|
那我们如何访问结构体的数据呢?
- 如果值访问,那就是
.
- 如果是指针访问,那就是
->
1 |
|