本文主要是介绍reinterpret_cast 最小demo(六十三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 ++;//charchar *chptr = reinterpret_cast<char*>(intptr);cout << *chptr << endl;intptr ++;//boolbool *blptr = reinterpret_cast<bool*>(intptr);cout << true << endl;
}
这篇关于reinterpret_cast 最小demo(六十三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!