当前位置:   article > 正文

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 结构体变量的定义和初始化

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

  1. struct str
  2. {
  3. int a;
  4. int b;
  5. }s1;//声明的时候同时定义结构体变量s1
  6. struct str s2;//定义结构体变量s2
  7. struct str s3 = { 3,4 };//初始化结构体变量同时赋初值
  8. struct ptr
  9. {
  10. int a;
  11. int b;
  12. };
  13. struct Node
  14. {
  15. int a;
  16. struct ptr s1;
  17. struct Node* p1;
  18. }n1{3,{4,5},NULL}//结构体嵌套的初始化并赋初值



1.6 结构体内存对齐

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/781378
推荐阅读
相关标签
  

闽ICP备14008679号