普通变量和数组在大小端模式下的存储顺序考证

遇到大小端存储的问题,一般都举例子:一个int类型的变量0x12345678。存储情况如下:

|------|------|------|------|------|
| 物理地址 | 1 | 2 | 3 | 4 |
| 大端存储 | 0x12 | 0x34 | 0x56 | 0x78 |
| 小端存储 | 0x78 | 0x56 | 0x34 | 0x12 |

这里不再讨论什么是大端存储,小端存储。

引申出两个问题:

  1. 当一个char型的数组,大小端存储的时候,物理地址里面的数据是怎样的。

  2. 再深入,一个short型(或者int,非char型的就可以)的数组在大小端存储的时候,物理地址里面的数据是怎样的。

一下讨论都是在小端存储的环境下进行的。

第一种情况经过程序验证, char型数组和int变量是相同的。

第二种情况,经过程序验证,

|---------------|------|------|------|------|------|
| | 物理地址 | 1 | 2 | 3 | 4 |
| 一个整形变量 | 大端存储 | 0x12 | 0x34 | 0x56 | 0x78 |
| 一个整形变量 | 小端存储 | 0x78 | 0x56 | 0x34 | 0x12 |
| 一个4元素的char数组 | 小端存储 | 0x78 | 0x56 | 0x34 | 0x12 |
| 一个2元素的short数组 | 小端存储 | 0x34 | 0x12 | 0x78 | 0x56 |

数组元素为2个short类型的时候, 首先存储低下标(第一个元素)的低字节,然后是其高字节。再试高下标(第二个元素)的低字节,高字节。

相关推荐
循着风30 分钟前
环形子数组的最大和
数据结构·算法·leetcode
小年糕是糕手44 分钟前
【C/C++刷题集】类和对象算法题(一)
数据结构·c++·程序人生·考研·算法·leetcode·改行学it
野生风长1 小时前
从零开始的C语言: 指针深入理解从入门到实践(中)指针与数组的结合
c语言·数据结构·算法
一叶之秋14121 小时前
从零掌握 List:高效操作与性能优化实战
数据结构·c++·list
副露のmagic1 小时前
更弱智的算法学习 day12
数据结构·学习·算法
我不会写代码njdjnssj1 小时前
图论问题-最短路径
数据结构·算法·图论
一起养小猫1 小时前
《Java数据结构与算法》第四篇(一)Java.util包中的树结构实现详解
java·开发语言·数据结构
EXtreme351 小时前
【数据结构】建堆操作:向上调整与向下调整的数学推导与性能对比
c语言·数据结构··时间复杂度·topk问题·算法分析
ChoSeitaku1 小时前
NO16数据结构选择题考点|树
数据结构
良木生香2 小时前
【数据结构-初阶】详解线性表(3)---双链表
c语言·数据结构·蓝桥杯