版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
C/C++专栏收录该内容
37 篇文章0 订阅
订阅专栏
看下面例子
char szDWORD[4] = {0x01,0x02,0x03,0x04};
DWORD *pDW = (DWORD *)szDWORD;
数组 szDWORD 的四个数的排列为 0x01,0x02,0x03,0x04,它们的地址顺序为从低到高,转化为 DWORD * 后,pDW 内存的真实数值是什么?
因为数值在内存中是高位在高位,低位在低位,所以 0x01 其实是在数值的最右边,因为我们读数时,右边是低位0x04 在最左边,也就是说每一个字节都要反过来,所以 pDW 中真实的数值是 0x04030201,而它们在内存中从低到高的排列顺序是 0x01,0x02,0x03,0x04