char str[]={0x12,0x34};
uint16_t myValue = *(uint16_t*)str;
printf("%4x\n",myValue);
printf("%4x\n",ntohs(myValue));
fflush(stdout);
我们取通过地址的强制类型转换,再解引用的方式获取原值。
但是注意字节序的问题, uint16_t myValue = *(uint16_t*)str;中,str低字节对应myValue的低字节,str高字节对应myValue的高字节,
但因为主机是小端序,故低位在起始位置。
数组理解为队列;
整形数的两个字节理解为高地位。
快速记忆方法:
小端序是交叉的(小叉)
大端序是非交叉的