gpt4 book ai didi

c - 为什么将 hex int 转换为 char* 会向后打印?

转载 作者:行者123 更新时间:2023-12-04 02:27:24 25 4
gpt4 key购买 nike

在我运行这段代码之前,我以为我理解了内存是如何工作的,内存是倒退的吗?或者我遗漏了什么?

代码:

#include <stdio.h>
int main()
{
int a = 0x12345678;

char *c = (char *)&a;

for (int i = 0; i < 4; i++)
{
printf("c[%d]=%x \n", i, *(c + i));
}

return 0;
}

输出:

c[0]=78

c[1]=56

c[2]=34

c[3]=12

最佳答案

您刚才所做的是演示您的计算机架构使用的是哪种“字节序”(即,您的计算机使用“小字节序”,而不是“大字节序”)。

如果您的计算机架构改为“big endian”,那么您的输出将改为:

c[0] = 12
c[1] = 34
c[2] = 56
c[3] = 78

您可能想阅读此内容以获取更多信息:https://en.wikipedia.org/wiki/Endianness

关于c - 为什么将 hex int 转换为 char* 会向后打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66523379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com