就我所知,在C编程语言中,数组按元素存储在存储器元素中。 (即,元素0,元素1,元素2,...,元素n)。我试图用以下代码看到:将无符号字符数组转换为整数
unsigned char a[] = { '\1' , '\2', '\3' ,'\4' };
printf("%d\n", (int*) a);
由于无符号字符是1个字节,整数是4个字节;我认为它具有打印值:
00000001 00000010 00000011 00000100 = 2^2 + 2^8 + 2^9 + 2^17 + 2^24 = 16909060
然而,当我运行这个程序,它会为每个试验产生不同的结果。
我在这里错过了什么?
在大多数计算机上,字节顺序与您所假设的相反。 –
相关:http://stackoverflow.com/q/29969049/694576 – alk