gpt4 book ai didi

c - 指针中的十六进制数组

转载 作者:行者123 更新时间:2023-11-30 14:36:00 24 4
gpt4 key购买 nike

 # include <stdio.h>
int main()
{
char p[]={0x01,0x02,0x03,0x04};
int *q = p;
printf("%x",*q);
return 0;

}

当我运行上面的代码时,答案是4030201。为什么?

最佳答案

这是因为您在little-endian架构机器(例如x86)上编译并运行代码

首先,您按顺序将 4 个字节放入内存中:01 02 03 04。然后将指向该数组的指针转换为指向 int 的指针。在小端机器上,内存块 01 02 03 04 表示整数值 0x04030201,该值将在下一步打印。

参见https://en.m.wikipedia.org/wiki/Endianness了解更多信息

关于c - 指针中的十六进制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257938/

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