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 用法相关推荐

  1. c++中static_cast用法与uchar/char的区别

    1.c++中static_cast用法 static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言 ...

  2. c语言cast的用法,static_cast 用法

    static_cast 用法 语法: static_cast(expression) 仅当 type-name 可以隐式转换为 expression 所属的类型,或者 expression 可以隐式转 ...

  3. C++static_cast用法

    在C++中强制类型转换存在四种方式,分别是static_cast.const_cast.rinterpret_cast和dynamic_cast.前三种对应这在c语言中旧式的强制类型转换,这篇文章讲解 ...

  4. static_cast用法

    用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性.它主要有 ...

  5. c++中static_cast用法

    static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言学习时的显性意义一样,但是编译器会对此类 ...

  6. C++中static_cast, dynamic_cast, const_cast用法/使用情况及区别解析

    目录 第1部分. 隐式类型转换 第2部分. 显式类型转换 static_cast dynamic_cast reinpreter_cast const_cast 首先回顾一下C++类型转换: C++类 ...

  7. 浅谈static_cast、dynamic_cast、const_cast、reinterpret_cast用法

    C++中的类型转换分两种:隐式类型转换和显式类型转换. 隐式转换,是标准的转换,很多时候是默认情况下由编译器进行转换: 显式转换,在C++中有四个类型的转换符:static_cast.dynamic_ ...

  8. static_cast, dynamic_cast, const_cast

    首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为"标准转换",包括以下几种情况: 1) 算术转换(Arithmetic ...

  9. 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)

    C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的 ...

最新文章

  1. 批处理获取exe返回结果
  2. BZOJ 1567: [JSOI2008]Blue Mary的战役地图
  3. mysql双向同步读写_mysql数据双向同步
  4. Simulink中如何定义变量的初始值
  5. Oracle数据库常用十一大操作指令
  6. ADO.NET与ORM的比较(4):EntityFramework实现CRUD
  7. Linux ifconfig命令示例
  8. VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
  9. 金融数据分析(十)人均国内生产总值的增长率
  10. 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
  11. VBS学习笔记(4): WScript //d //x MyScript.vbs,调试无法启动
  12. 四部金融投资经典教材和30部必读的投资学经
  13. java进阶知识思维导图
  14. torch.backends.cudnn.benchmark的用法
  15. LPR基准利率BP是什么意思,银行利率bp是什么意思
  16. 苹果 AirPods 或改用 USB-C 接口,AirPods 最有用的功能就是Find My
  17. 一份完整的APP产品运营推广方案
  18. 还原SQL数据库,执行 Transact-SQL 语句或批处理时发生了异常
  19. 当型循环和直到型循环
  20. RSS2.0规范简易说明

热门文章

  1. 黑客萌妹子爱看动漫、大叔喜欢去KTV浪,除了 hack 他们还爱干什么 | 宅客故事...
  2. 一次卸载垃圾软件绑定5QBB.com的心得
  3. iOS WKWebView 点击超链接跳转至Safari浏览器
  4. Excel工作表如何固定第一行不动?
  5. 通信运营商:适合你吗?
  6. 关于AS报 主版本 52 比 51 新, 此编译器支持最新的主版本。 建议升级此编译器 问题
  7. 形状相似的物品_找身边与图形相似的事物
  8. 怎样为“创新”保驾护航?
  9. 机器学习--鸢尾花数据集实战
  10. VMware端口组是什么?