Char szNum[]=”123456789”
, int n=*(short*)(szNum+4)- *(short*)(szNum)
; 则n= 1028
;## c++
int 型占4字节
short型占2字节
Char型占1字节
(short*)(szNum+4)将char型强制转换为short型,由于short型占2个字节而char 型的‘5‘’只占了一个字节’,所以就会在 (short)(szNum+4)所指内存地址的基础(即就是字符5的基础)上顺延1个字节以补齐2个字节的大小,顺延后就是找到‘6’这个字符,所以*(short*)(szNum+4)就指向了‘5’‘6’,他两个的二进制则是0011 0101 0011 0110,同理*(short*)(szNum)指向的是‘1’‘2’二进制为 0011 0001 0011 0010,相减是0000 0100 0000 0100转换为10进制就是1028了。