乐观学习,乐观生活,才能不断前进啊!!!
我的主页:optimistic_chen
我的专栏:c语言
点击主页:optimistic_chen和专栏:c语言,
创作不易,大佬们点赞鼓励下吧~
文章目录
前言
前面的博客学习了整形和浮点型在内存中的存储,接下来学习计算结构体的大小之前博客提及过结构体C语言操作符之神秘,我们这篇博客将深入学习结构体的具体内容。
1.结构体类型的声明
结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
结构的声明
struct tag
//关键字 结构体名称
{
member-list;//成员列表
}variable-list;//变量列表
结构的特殊声明
//匿名结构体类型
struct
{
int a;
char b;
float c;
}x;
警告:匿名的结构体类型,如果没有对结构体类型重命名的话,基本上只能使⽤⼀次。
2.结构的自引用
在结构中包含⼀个类型为该结构本⾝的成员是否可以呢?
struct Node
{
int a;
struct Node next;
};
但是我们要计算该结构体的大小,仔细分析,其实是不⾏的,因为⼀个结构体中再包含⼀个同类型的结构体变量,这样结构体变量的⼤⼩就会⽆穷的⼤,是不合理的。
正确的自引用方法:
struct Node
{
int a;
struct Node* next;//指针
};
3.结构体内存对齐
3.1对齐规则
1.结构体的第⼀个成员对⻬到和结构体变量起始位置偏移量为0的地址处
2.其他成员变量要对⻬到某个数字(对⻬数)的整数倍的地址处。
对⻬数 =