C语言结构体、枚举、联合体

目录

1.0 结构体

1.1 结构体是什么:

1.2 结构体的声明:

1.3 结构体的不完全声明:

1.4 结构体的自引用

1.5 结构体变量的定义和初始化

1.6 结构体内存对齐

1.7 修改默认对齐数

1.8 结构体传参

2.0 位段

2.1 什么是位段

2.2位段的内存分配

2.3 位段的跨平台问题

3.0 枚举 

3.1枚举类型的定义

3.2 枚举的优点

3.3 枚举的使用 

4.0 联合(共用体)

4.1 联合类型的定义

4.2 联合的特点 

4.3 联合的大小计算 


#1.结构体

在现实世界里,常常有一些复杂对象不好用简单的变量或数组去表示,这时候C语言的自定义类型:结构体,就可以帮我们很好的定义这些复杂对象。

1.1 结构体是什么:

结构体是一些值的集合,这些值被称为成员变量,成员变量可以是不同的类型


1.2 结构体的声明:

这个时候我们就声明了一个有两个char类型和一个int类型的结构体类型struct str


1.3 结构体的不完全声明

 与上面的声明不同的是少了结构体标签,所以这个结构体类型只有一个变量s3,不可在函数内重新创建新的变量


1.4 结构体的自引用

结构体是一些值的集合,那结构体本身是不是可以是自己的成员变量呢?

不行。因为如果这样做,那结构体的大小怎么计算,一层套一层根本计算不了。

那怎么自引用呢?正确的自引用方法:

 


1.5 结构体变量的定义和初始化

根据前面说的,那定义一个结构体变量其实就很简单了

struct str
{
	int a;
	int b;
}s1;//声明的时候同时定义结构体变量s1
struct str s2;//定义结构体变量s2

struct str s3 = { 3,4 };//初始化结构体变量同时赋初值

struct ptr 
{
    int a;
    int b;
};

struct Node
{
    int a;
    struct ptr s1;
    struct Node* p1;
}n1{3,{4,5},NULL}//结构体嵌套的初始化并赋初值



1.6 结构体内存对齐

前边介绍了结构体的初步使用,接下来介绍深入一点的

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值