C语言 小端序和大端序中的内存表示字符串


char S[6] = "18243";

以下字符串在大端和小端系统中如何表示?

char类型包含一个字节。 因此,该类型不涉及字节序。

在您的示例中,您有一个数组。 数组元素一个接一个地存储在内存中。 所以S[0]首先出现,然后出现S[1],等等:

-----------------------------------
S | '1' | '8' | '2' | '4' | '3' | 0 |
-----------------------------------

> Endianess 仅适用于数字(大于一个字节(。

无论字节序如何,字符串的表示方式都相同:第一个字母位于最低有效地址。

假设编译器/链接器/加载器决定将 S 放在地址 0x420000。

0x420000 '1'
0x420001 '8'
0x420002 '2'
0x420003 '4'
0x420004 '3'
0x420005 ''