本课继续讲解了C语言的强制类型转换,之后介绍了结构体,数组以及结构体中的数组。
*和&的技巧
例1:
double d = 3.1416;
char ch = *(char*)&d;
取出d的地址,并重新解释为char型,然后解引用。由于double为8bytes,而char为1bytes,因此ch表示的是原来double中截取1bytes的结果。
例2:
short s = 45;
double d = *(double*) & s;
取出s的地址,并重新解释为double型,从2bytes变成8bytes,解引用后赋值给d。
字节存放顺序:大尾(big endian),小尾(small endian)
字节存放有大尾和小尾之分。如果对应数据的高字节存放在低地址就是大尾,反之,高字节存放在高地址的就是小尾。
例如:
short int a = 0x1234
大尾存放时:
偏移地址 存放内容
0x0000 0x12
0x0001 0x34
小尾存放:
偏移