c - 需要澄清 C 中的 unsigned char *

标签 c

给定代码:

...

int x = 123

...

unsigned char * xx = (char *) & x;

...

我有 xx[0] = 123xx[1] = 0xx[2] = 0

有人可以解释这里发生了什么吗?我对一般的指针没有很好的理解,所以越简单越好。

谢谢

最佳答案

您正在访问 little-endian 的字节(char) int 顺序。在小端系统上 int 中的数字 123 通常存储为 {123,0,0,0}。如果您的号码是 783 (256 * 3 + 15),它将存储为 {15,3,0,0}

关于c - 需要澄清 C 中的 unsigned char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29038263/

相关文章:

c - 基本逻辑运算符问题

c++ - "C/C++"不是说错了吗?

c - printf 改变值

c - 看来基于堆栈的变量在 C 函数之后没有被释放

c - 具有相同名称的类似函数的宏和枚举器

c - 阻塞模式是什么意思?

c - 在 C 语言中进行 Collat​​z 猜想测试时遇到问题

c - 在c二进制文件中,测试数字是否在范围内

c - 使用带有 va_arg 的自定义类型

c - 我无法判断这个旋转功能是否按预期工作