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

Python020

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

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

区别在于,对字符的操作与数值不同,字符数组可以当作字符串来对待(当然,作为字符串,要注意字符串的结束符号)

字符数组也可以当作整型数组使用,只是表达的范围比较小而已。

总得来说,字符数组可以作为字符串来操作,这个用途比较大。

如果抛开这个不说,那么字符数组,整数数组、实数数组除了表达范围不同外,使用上一样。

一个是整型数组,一个是字符数组,不一样的.

整型数据不是以\0结束的,而字符数组最后要存放一个\0的.

如int

a[4],可以存放4个int型数据,如int

a[4]={1,2,3,4}

char

a[4],也可存放4个字符,但最后一个字符得为\0,不然不能正常输入字符串.

char

a[4]={'a','b','c','\0'},当然'\0'也可以省略,char

a[4]={'a','b','c'}

但不能是char

a[4]={'a','b','c','d'},输出的时候会有乱码,因为没有结束标志.