当前位置: 首页 > news >正文

C语言-结构体-015


1.结构
1.1语法:

1.2语义:
1.3结构体形式:
1.形式1:

2.形式2:

3.形式3:

1.4 结构体变量初始化:
1.5结构体成员的访问
1.5.1通过结构体变量名访问成员
【变量名 . 成员】:

1.5.2通过指向结构体的指针访问成员
【指针变量 -> 成员】:

1.4结构体大小:
1.4.1结构体对齐规则:
1.在32位的平台上,默认都是按4字节对齐的。

2.对于成员变量,各自在自己的自然边界上对齐

(1)【int】:4字节,在能被4整除的地址编号上

(2)【short】:2字节,在能被2整除的地址编号上

(3)【char】:1字节,在能被1整除的地址编号上

整个给结构体的对齐

3.如果成员变量中有比4字节大,此时整个结构体按照4字节对齐。(32位平台)

4.如果成员变量中没有比4字节大,此时整个结构体按照最大的那个成员对齐。

2.联合(共用体)
2.1语法:

2.2语义:
初始化:只能给一个值,默认是给到第一个成员变量的。

共用体成员变量辅助:共用体用的数据最终存储的应该是最后依次给到的值。但是只能影响到自己数据类型对应的空间中的数据。

2.3共用体形式:
2.4共用体变量初始化:
2.5共用体成员的访问:
2.6共用体大小:
2.7共用体的应用:
共用体类型可以做

(1)定义变量

(2)定义数组

(3)定义指针

(4)做函数的参数返回值类型

2.8共用体的其它应用
2.8.1系统数据存储模式(大小端判断)

3.枚举
3.1语法:

3.2语义:

3.3枚举形式:

3.4枚举变量初始化:

3.5枚举成员访问:

注意:

(1)枚举:提高了代码的可读性

(2)本质上是int整型

(3)不足:因为枚举类型 — 本质上是个整型类型, 所以枚举类型的变量的值,并不能真正限定在指定的哪些值范围中 。

(4)可以做函数形参和返回值,定义数组也可以,本质上就是整形数据。

3.6枚举类型的大小:

相关文章:

  • 设计模式总结(四)
  • Spring 之声明式事务和 Spring Junit 案例应用详解
  • Spring Boot: 使用MongoOperations操作mongodb
  • Vue+SpringBoot打造智慧家政系统
  • 机器学习之无监督学习简介及算法库推荐
  • 学点Java_Day6_基于Copyright和Actions On Save的IDEA自动更新文件最后编辑时间的方法研究(IDEA2021.2及以上)
  • 联想笔记本的声音键没有反应怎么办?
  • Selenium 学习(0.21)——软件测试之单元测试
  • C语言案例01, 输入两个整数,获得两个数加减乘除的值,持续更新中~
  • 【Spring Cloud】微服务通信概述
  • 【C语言】结构体内存对齐问题
  • <JavaEE> 了解网络层协议 -- IP协议
  • 从零到一构建短链接系统(八)
  • 通过jsDelivr实现Github的图床CDN加速
  • Rust常用库之序列化和反序列化库serde(使用 Serde 处理json)
  • .pyc 想到的一些问题
  • 【RocksDB】TransactionDB源码分析
  • 77. Combinations
  • CSS魔法堂:Absolute Positioning就这个样
  • ERLANG 网工修炼笔记 ---- UDP
  • gulp 教程
  • Java面向对象及其三大特征
  • Node项目之评分系统(二)- 数据库设计
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 你真的知道 == 和 equals 的区别吗?
  • 人脸识别最新开发经验demo
  • 如何进阶一名有竞争力的程序员?
  • 如何使用 JavaScript 解析 URL
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​一些不规范的GTID使用场景
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #QT项目实战(天气预报)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计高校学生选课系统
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)鸿鹄云架构一服务注册中心
  • (五)IO流之ByteArrayInput/OutputStream
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)linux 命令大全
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net Remoting常用部署结构
  • .NET 设计模式初探
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net 验证控件和javaScript的冲突问题
  • .net连接MySQL的方法
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @JoinTable会自动删除关联表的数据
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [51nod1610]路径计数
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [BZOJ]4817: [Sdoi2017]树点涂色