C语言中整型数组的每个元素在内存中是如何存放的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中整型数组的每个元素在内存中是如何存放的相关的知识,希望对你有一定的参考价值。

整型数组每个元素在内存中连续存储,每个整型元素存储方式取决于机器硬件。
一、数组元素都是连续存储的,地址依次从低到高。
如字符数组 char a[10];
其元素有10个,为a[0]到a[9], 地址连续。 如果a的起始地址为0x1234,那么后续地址依次为0x1235, 0x1235...0x123D。
二、每个元素具体存储方式,取决于CPU。 有两种:
1、小端(Little Endian):
将低序字节存储在起始地址(低位编址), 地址低位存储值的低位,地址高位存储值的高位 。
目前大多数CPU是按照这种方式存储的,包括intel和移动端最常见的arm。
比如4字节整型值为0x12345678的情况,那么在内存中会存储为:

0x78 0x56 0x34 0x12
2、大端(Big Endian):
与小端相反, 将高序字节存储在起始地址(高位编址),地址低位存储值的高位,地址高位存储值的低位。
之前的例子在大端情况下存储为:
0x12 0x34 0x56 0x78
参考技术A 每个数占4字节,从低地址到高地址,先存放下标为0的元素,紧接着存放下标为1的元素……以此类推,没有间隔,直到整个数组结束。

以上是关于C语言中整型数组的每个元素在内存中是如何存放的的主要内容,如果未能解决你的问题,请参考以下文章

c语言问题:c语言中二维数组在内存中怎样存储?

C语言数组

Java数组在内存中是啥样的

c语言中整型数据的取值范围是怎么确定的???

DBulbasaur C语言

C语言将数组转换成一个整型数