示例代码
void Char2Int()
{
char *str = "0123456789";
int *p = (int *) str;
printf("%x\n", *p);
printf("%x\n", *++p);
}
输出结果
解析
char每个是一个字节,指针转为int指针时,则表示原有读取方式,从一个字节读一次变为四个字节读一次,即单次会读取’0’ ‘1’ ‘2’ ‘3’,*++p则是读取’4’ ‘5’ ‘6’ ‘7’,字符串存储时按顺序存储(&str[0] < &str[1]),赋值给int,而笔者的机器是小端的,所以读取顺序变为’3’ ‘2’ ‘1’ ‘0’,ascii对应的16进制则为"33323130"