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
一、数组元素都是连续存储的,地址依次从低到高。
如字符数组 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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询