繁体   English   中英

为什么字节顺序(字节序)不是标准 C 字符串的问题?

[英]why byte ordering (endianess) is not an issue for standard C string?

我的教授提到byte ordering (endianess)对于standard C StringChar arrays )不是问题:

例如: char[6]="abcde";

但他没有解释为什么?

对此的任何解释都会有所帮助

Endianess 仅在您拥有多字节数据(如整数和浮点数)时才重要。 标准 C 字符串由 1 字节字符组成,因此您无需担心字节序。

一个char只占用一个字节,这就是排序无关紧要的原因。 例如, int有 4 个字节,这些字节可以按 little-endian 和 big-endian` 排列。

例如: 0x00010204在内存中可以有两种排列方式:

04 02 01 00 or 00 01 02 04

作为单字节的char将作为单字节提取到CPU String只是一个char数组。

内存存储的最小单位是 1 字节,如果你有一个 4 字节的值(例如:0x01234567)它将在连续位置按字节顺序排列和获取

大端:01 23 45 67 小端:67 45 23 01

而对于 1 字节值,它可以从一个内存位置本身获取,因为这是最小的内存块,不需要字节排序。

希望这可以帮助 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM