【发布时间】:2012-05-10 09:52:55
【问题描述】:
据我所知,在 C 编程语言中,数组是逐个元素存储在内存中的。 (即元素 0、元素 1、元素 2、...、元素 n)。我正在尝试使用以下代码查看:
unsigned char a[] = { '\1' , '\2', '\3' ,'\4' };
printf("%d\n", (int*) a);
由于 unsigned char 是 1 个字节,整数是 4 个字节;我认为它必须打印值:
00000001 00000010 00000011 00000100 = 2^2 + 2^8 + 2^9 + 2^17 + 2^24 = 16909060
但是,当我运行这个程序时,每次试验都会产生不同的结果。
我在这里错过了什么?
【问题讨论】:
-
在大多数计算机上,字节顺序与您的假设相反。