概述
1.代码示例
reinterpret_cast <目的类型> (参数)
用途范围:
是一个强制类型转换符。
用在任意的指针之间的转换、引用之间的转换,指针和足够大的int型之间的转换,整数到指针的转换
例子:
int *intptr;
char *chptr = reinterpret_cast<char*>(intptr);
对于reinterpret_cast运算符谨慎使用,使用的地方:
A pointer to any integral type large enough to hold it (指针转向足够大的整数类型)
A value of integral or enumeration type to a pointer (从整形或者enum枚举类型转换为指针)
A pointer to a function to a pointer to a function of a different type (从指向函数的指针转向另一个不同类型的指向函数的指针)
A pointer to an object to a pointer to an object of a different type (从一个指向对象的指针转向另一个不同类型的指向对象的指针)
A pointer to a member to a pointer to a member of a different class or type, if the types of the members are both function types or object types (从一个指向成员的指针转向另一个指向类成员的指针!或者是类型,如果类型的成员和函数都是函数类型或者对象类型)
#demo.cpp
#include <iostream>
using namespace std;
struct Cow{
int mCount;
int leCount;
char str;
bool bl;
};
int main(){
Cow cow;
cow.mCount = 8;
cow.leCount = 5;
cow.str = 'f';
cow.bl = true;
Cow *cowptr = &cow;
int *intptr = reinterpret_cast<int*>(cowptr);
//int
//cout << *cowptr << endl;
cout << *intptr << endl;
intptr ++;
//int
cout << *intptr << endl;
intptr ++;
//char
char *chptr = reinterpret_cast<char*>(intptr);
cout << *chptr << endl;
intptr ++;
//bool
bool *blptr = reinterpret_cast<bool*>(intptr);
cout << true << endl;
}
最后
以上就是大胆跳跳糖为你收集整理的reinterpret_cast 最小demo的全部内容,希望文章能够帮你解决reinterpret_cast 最小demo所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复