写一个测试程序:
unsigned char a[4] = {18};
int *pa = (int *)a;
*pa = 0x01234567;
for(i=0;i<4;i++)
{
printf("%02x ",a[i]);
}
输出是67 45 23 01,果然是低位在前.个人认为采取这种低位在前的方式是为了便于类型转换.在这个例子中pa和a都指向同一个地址,a[0]的值是67,也就是整型数据*pa的低位.如果是高位在前,a[0]的值将是01. 个人觉得经过强制转型,还是取到低位的值比较容易接受.
参考: