网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
return 0;
}
*特点:*
>
> * {}内成员叫做枚举常量;
> * 每个常量之间需要用逗号,最后一个除外;
> * 每个常量都有取值,默认从0开始,每次递增1;
>
>
> ![](https://img-blog.csdnimg.cn/de2b1ec980c745e99eeb2938d30932a2.png)
>
>
> * 变量的取值也可以修改:
>
>
> ![](https://img-blog.csdnimg.cn/b4e78fb00bc047a189c0ab6507294a91.png)
>
>
>
>
>
>
>
### 枚举的优点:
>
> * 增加代码的可读性和可维护性;
> * 和#define定义的标识符比较枚举有类型检查,更加严谨;
> * 便于调试;
> * 使用方便,一次可以定义多个常量;
>
>
>
---
## 联合体
联合体也叫共用体;
在进行某些算法的时候,需要使几种不同类型的变量存放到同一段内存单元中,也可以通俗的理解为(合租)。
### 联合体的定义和声明:
#include<stdio.h>
//声明
union Un
{
int a;
char b;
};
int main()
{
//定义一个联合体变量
union Un s;
printf("%zd\n", sizeof(s));
printf("%p\n", &s);
printf("%p\n", &s.a);
printf("%p\n", &s.b);
return 0;
}
![](https://img-blog.csdnimg.cn/8c3f6467b81848d7abd17192e5d9eb4c.png)
### 联合体的特点:
>
> * 所有成员共用一块空间;
> * 联合体的大小至少是最大成员的大小;
> * 在调用成员变量的时候不能同时用,否则就不能共用一块空间;
> * 改变一个成员的内容,其他成员也会被改变;
>
> ![](https://img-blog.csdnimg.cn/c32e5da1911d483faf3980882e0187b2.png)
>
>
>
### 联合体的大小:
>
> * 联合体大小也要遵循结构体中的“对齐”;
> * 大小至少是最大成员的大小;
>
>
>
*示例:*
![](https://img-blog.csdnimg.cn/0833456aff234e79a9099166800f7a32.png)
为什么大小为8个字节?
![](https://img-blog.csdnimg.cn/3fa8ea732a834ece867ede5f560f3ca5.png)
![img](https://img-blog.csdnimg.cn/img_convert/764e542c015761fa7ab0c995256bd49f.png)
![img](https://img-blog.csdnimg.cn/img_convert/aa1f03c3459fd9320cd76e9d0911e110.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**