我是靠谱客的博主 玩命小蘑菇,最近开发中收集的这篇文章主要介绍reinterpret_castreinterpret_cast,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

reinterpret_cast

  • 用于进行各种不同类型的转换
    • 不同类型指针之间
    • 不同类型引用之间
    • 指针和能容纳指针的整数类型之间的转换
  • 编译期处理,执行的是逐字节复制的操作
  • 类似于显式强转,后果自负
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void foo(){
cout << "foo()" << endl;
}
int main() {
int nTemp = 0;
// 指针转整数
int nTemp1 = reinterpret_cast<int>(&nTemp);
cout << hex << nTemp1 << 'n';
//整数转指针
int* p1 = reinterpret_cast<int*>(nTemp1);
cout << *p1 << 'n';
//将整型转为指针
unsigned int nTemp2 = 0x00500000;
int* pTemp = reinterpret_cast<int*>(nTemp2);
//将一个函数转为一个函数指针并转回
void(*fp1)() = reinterpret_cast<void(*)()>(foo);
int(*fp2)() = reinterpret_cast<int(*)()>(fp1);
cout << dec << fp2() << 'n';
}

最后

以上就是玩命小蘑菇为你收集整理的reinterpret_castreinterpret_cast的全部内容,希望文章能够帮你解决reinterpret_castreinterpret_cast所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部