千家信息网

C++中的四种强制类型转换是什么

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,本文小编为大家详细介绍"C++中的四种强制类型转换是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"C++中的四种强制类型转换是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2024年11月12日C++中的四种强制类型转换是什么

本文小编为大家详细介绍"C++中的四种强制类型转换是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"C++中的四种强制类型转换是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在了解c++的强制类形转换的时候,先看看在c语言中是怎么进行强制类形转换的。

C语言中的强制类形转换分为两种

  • 隐式类型转换

  • 显示类型转换

int main(){        int a = 97;        char ch = a;     // 隐式类型转换        int b = (int)ch; // 显示类型转换         cout << "a = " << a << endl;        cout << "ch = " << ch << endl;        cout << "b = " << b << endl;        int num = 10;        int* p = #        // int ret = p; Error,因为p的类型和ret的类型不一致,所以隐式转换失败        int ret = (int)p;        cout << "num = " << num << endl;        cout << "&num = " << &num << endl;        cout << "p = " << p << endl;        cout << "ret = " << ret << endl;        return 0;}

我们看出来,在相关数据类型之间的转换是可以隐式转换的,如果是俩个不相关的数据类型之间的转换,必须是显式类型转换。

C++中的强制类形转换

C++中有四种强制类型转换

  1. static_cast

  2. reinterpret_cast

  3. const_cast

  4. dynamic_cast

static_cast静态转换,任何标准转换都可以用它,但是不能用于两个不相关的类型转换,其实就是有点像隐式类型转换了。

int main(){        int i = 97;        char ch = static_cast(i);        cout << "i = " << i << endl;        cout << "ch = " << ch << endl;        return 0;}

reinterpret_cast

reinterpret_cast:将一种类型转换为另外一种类型,但是如果是相关类型则不可以转换,会报错,无效类型转换。

int main(){        int i = 97;        // char ch = reinterpret_cast(i); // Error 这样的转换类型属于无效转换类型        int* p = reinterpret_cast(i);        cout << "i = " << i << endl;        cout << "&i = " << &i << endl;        cout << "p = " << p << endl;        return 0;}

这个的输出结果就很意思,我们可以观察到,p 是我们定义的一个 int* 变量,但是我们使用reintrtpret_cast的时候并不是把 i 变量的地址写了进去,而是将 i 变量的值,用 int* 类型的格式存储了起来,也就是说 int* p 的 p 存放的不是 i 的地址,而是,变量 i 的值,只不过是用16进制来存储的。

读到这里,这篇"C++中的四种强制类型转换是什么"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

类型 强制 C++ 变量 文章 之间 内容 地址 数据 时候 而是 语言 存储 妥当 一致 两个 也就是 也就是说 只不过 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京惠普服务器虚拟化哪家便宜 电网图数据库 哪个云服务器空间便宜 数据库枚举值 自动网络技术市场 什么是监控的中心管理服务器 容器是不是就是一个数据库 服务器操作系统安全防护 魔兽世界3.35附魔数据库 软件开发捡瓶子什么梗 央视网网络安全有多重要 上海交通大学软件开发职位 众筹 软件开发 陕西软件开发公司经营范围 获取所有服务器上数据库连接 门店管理软件开发 数据库id怎么转字符型 林业变更数据库标准 唐山市城库网络技术有限公司 上海珍友网络技术有限公司 冒险岛服务器内只有我的角色之间可以移动 网络安全典型个人申报材料 北航的网络安全学院 落实网络安全的主体责任 华为中央硬件工程院软件开发 网络安全管理和电子商务师哪个好 怎么求平均成绩数据库 256g服务器多少钱 充电桩大数据库 新技术方向及其网络安全问题
0