static_cast 用法
https://blog.csdn.net/moruihong
用法:static_cast < type-id > ( expression )
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和 派生类 (子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 ③把空指针转换成目标类型的空指针。 ④把任何类型的表达式转换成void类型。 注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。 C++中static_cast和 reinterpret_cast 的区别 C++primer 第五章里写了 编译器 隐式执行任何类型转换都可由static_cast显示完成;reinterpret_cast通常为操作数的位模式提供较低层的重新解释 1、C++中的static_cast执行非 多态 的转换,用于代替C中通常的转换操作。因此,被做为隐式类型转换使用。比如: int i; float f = 166.7f; i = static_cast<int>(f); 此时结果,i的值为166。 2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如: int i; char *p = "This is a example."; i = reinterpret_cast<int>(p);
此时结果,i与p的值是完全相同的。reinterpret_cast的作用是说将指针p的值以二进制(位模式)的方式被解释为整型,并赋给i,//i 也是指针,整型指针;一个明显的现象是在转换前后没有数位损失。
static_cast 用法相关推荐
- c++中static_cast用法与uchar/char的区别
1.c++中static_cast用法 static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言 ...
- c语言cast的用法,static_cast 用法
static_cast 用法 语法: static_cast(expression) 仅当 type-name 可以隐式转换为 expression 所属的类型,或者 expression 可以隐式转 ...
- C++static_cast用法
在C++中强制类型转换存在四种方式,分别是static_cast.const_cast.rinterpret_cast和dynamic_cast.前三种对应这在c语言中旧式的强制类型转换,这篇文章讲解 ...
- static_cast用法
用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性.它主要有 ...
- c++中static_cast用法
static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言学习时的显性意义一样,但是编译器会对此类 ...
- C++中static_cast, dynamic_cast, const_cast用法/使用情况及区别解析
目录 第1部分. 隐式类型转换 第2部分. 显式类型转换 static_cast dynamic_cast reinpreter_cast const_cast 首先回顾一下C++类型转换: C++类 ...
- 浅谈static_cast、dynamic_cast、const_cast、reinterpret_cast用法
C++中的类型转换分两种:隐式类型转换和显式类型转换. 隐式转换,是标准的转换,很多时候是默认情况下由编译器进行转换: 显式转换,在C++中有四个类型的转换符:static_cast.dynamic_ ...
- static_cast, dynamic_cast, const_cast
首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为"标准转换",包括以下几种情况: 1) 算术转换(Arithmetic ...
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的 ...
最新文章
- 批处理获取exe返回结果
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图
- mysql双向同步读写_mysql数据双向同步
- Simulink中如何定义变量的初始值
- Oracle数据库常用十一大操作指令
- ADO.NET与ORM的比较(4):EntityFramework实现CRUD
- Linux ifconfig命令示例
- VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
- 金融数据分析(十)人均国内生产总值的增长率
- 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
- VBS学习笔记(4): WScript //d //x MyScript.vbs,调试无法启动
- 四部金融投资经典教材和30部必读的投资学经
- java进阶知识思维导图
- torch.backends.cudnn.benchmark的用法
- LPR基准利率BP是什么意思,银行利率bp是什么意思
- 苹果 AirPods 或改用 USB-C 接口,AirPods 最有用的功能就是Find My
- 一份完整的APP产品运营推广方案
- 还原SQL数据库,执行 Transact-SQL 语句或批处理时发生了异常
- 当型循环和直到型循环
- RSS2.0规范简易说明
热门文章
- 黑客萌妹子爱看动漫、大叔喜欢去KTV浪,除了 hack 他们还爱干什么 | 宅客故事...
- 一次卸载垃圾软件绑定5QBB.com的心得
- iOS WKWebView 点击超链接跳转至Safari浏览器
- Excel工作表如何固定第一行不动?
- 通信运营商:适合你吗?
- 关于AS报 主版本 52 比 51 新, 此编译器支持最新的主版本。 建议升级此编译器 问题
- 形状相似的物品_找身边与图形相似的事物
- 怎样为“创新”保驾护航?
- 机器学习--鸢尾花数据集实战
- VMware端口组是什么?