学习数据结构与算法|结构体与共用体
以下笔记来源于视频:【动画教程】研讨共用体,探究大小端存储模式(C语言)
结构体与共用体
1.结构体 结构体
struct per{ char name;
int age;
};
结构体中各成员有各自的内存空间,不管结构体中的成员变量是否被使用,C程序都会给它们分配内存
文章图片
2.共用体 为节约内存空间,达到在同一块内存空间中储存不同类型数据的目的,共用体应运而生.
使用共用体将多种不同种类型的变量存放到同一段内存单元
共用体
union persion{ char name;
int age;
};
共用体中各成员变量共享同一块内存空间, 即共用体在同一时间只能存放一个变量
一个共用体的长度=各成员变量中最宽数据类型的长度
文章图片
共享同一块内存的含义是:
该共用体变量可被赋予任意一种数据类型的值, 但每次只能赋一种值,若赋入新值,则旧值被覆盖
文章图片
文章图片
第一次赋值 Tom.name=‘T’ , 则共用体所在内存空间中存储着 T
第二次赋值 Tom.age=108 , 则共用体所在内存空间中的原值T被108覆盖
文章图片
【学习数据结构与算法|结构体与共用体】计算机存储模式分为:
- 大端存储
- 小端存储
计算机存储按字节划分,1byte=8bit
文章图片
文章图片
寄存器宽度大于1byte,所以存在如何将多个字节安排进入内存这样的问题, 因此存在大端存储模式和小端存储模式
文章图片
文章图片
x86 ARM DSP均为小端模式
Keil C51 为大端模式
文章图片
ARM可切换大小端模式
文章图片
使用共用体判断计算机存储模式
文章图片
大端模式
左高0x1234右低
c[0]为低地址
c[1]为高地址
文章图片
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法