#include "iostream"
using namespace std;
void main(void)
{
char str[] = "1234567890";
int* p = (int*)str;
cout << *(p + 1) << endl;
/*结果为943142453,转换为int类型指针 + 1跳过四个字节,解指针时当作整形数据读取ASCII码,
先存5,后存8,因此读取时先读8的ASCII码(00111000),后读5的ASCII码(00110101),最后读取四个字节(32bit)
为0011 1000 0011 0111 0011 0110 0011 0101,转换为十进制是943142453*/
cout << *((char*)(p + 1)) << endl;
/*结果为5,先按照整形指针跳过四个字节,指向存放“5”的地址,
然后转换为char型指针只读取一个字节的ASCII码并转换为对应字符,即是5*/
}
char*类型指针转换为int*类型指针
最新推荐文章于 2024-07-15 10:56:54 发布