初学指针我们可能会遇到如下代码:
创新互联主营七里河网站建设的网络公司,主营网站建设方案,App定制开发,七里河h5小程序开发搭建,七里河网站营销推广欢迎七里河等地区企业咨询#includeint main()
{
int a = 0x11223344;
int* pa = &a;
char* pc = &a;
printf("%p\n",pa);
printf("%p\n",pc);
return 0;
}
但是有的vs版本输入这段代码会报错,运行不了,报错的原因是:无法从int*转化到char*。所以这时候就需要我们将int类型强制转化为char类型,那我们就可以用reinterpret_cast(强制类型转换符)。
所以将以上代码修改为如下代码段:
#includeint main()
{
int a = 0x11223344;
int* pa = &a;
char* pc = reinterpret_cast(&a);
printf("%p\n",pa);
printf("%p\n",pc);
return 0;
}
reinterpret_cast的用法:
reinterpret_cast(expression)
reinterpret_cast后面的<>中的type-name类型必须是一个指针、引用、算术类型、函数指针或者指针成员,它可以把一个指针类型转换成一个整数,也可以把一个整数转换成一个指针。
以上是我学习指针时遇到的一个小问题,在借鉴了其他文章以及报错的提醒内容后解决了该问题,希望能给遇到同样问题不知道怎么解决的小伙伴一个小小的帮助喔😃
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧