求大神,字符串转成其他类型如何转

求大神,字符串转成其他类型怎么转

#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
char  szNum[10] = "123456789";
cout << *(short*)(szNum + 4) <<  "," << *(short*)(szNum) << endl;
int n = *(short*)(szNum + 4) - *(short*)(szNum);//1028
cout << n << endl;
return 0;
}

我想问下

cout << *(short*)(szNum + 4) <<  "," << *(short*)(szNum) << endl;

这两个值怎么计算

------解决方案--------------------
*(short*)(szNum + 4)
- szNum的类型是char *指针
- (szNum + 4)指向的是'5'的地址
- (short*)(szNum + 4)转换为short *类型指针,指向'5'首地址的两个连续字节空间
- *(short*)(szNum + 4)为'56'的值,'5'=0x35,'6'=0x36,因此它的值是0x3635=13877.

*(short*)(szNum)
- 同理,*(short*)(szNum)=0x3231=12849.