static_castconst_cast 、static_cast 和 reinterpret_cast 分别怎样使用

static_cast  时间:2021-06-25  阅读:()

为什么 static_cast应用于指针的转换没有太大意义

因为转换本就是一种欺骗编译器的手段,如把一个指针强转为A*,只是你告诉编译器把这指针指向的地址后sizeof(A)个字节的内存当作A对象来解析。

因此指针强转很容易出现非法内存访问。

例如(在小端机上): int a = 10, b= 20; int *pb = &b; double *pD = (double*)pb; *pD = 1.2346656; cout << b<<endl; 输出结果成了乱码:-1218973566 这种转换即是所谓的c风格转换,很不安全。

static_cast用来取代c风格强转,加入了类型检查,多少加入了一点安全性,但仍然无法保证指针强转的安全。

static_cast能把空指针转换成目标类型的空指针、在父子类指针见转换。

然而空指针转换一般很少用,而类族父类与子类的强转用dynamic_cast,所以它在指针转换上没什么用。

&和static_cast<void *>的区别

&运算符是直接取地址,而static_cast是将b先转换成void*,然后再输出这个指针的地址,这个过程中涉及到C++非常底层有关指针地址运算的东西。

个人觉得如果不是十分必要,用不着深抠,理解会用指针及其地质即可。

“数据类型的转换 比如double型 的数据在内存中占4个字节(abcd),转换成void *时,将这4个字节中的数据复制到另外4个字节(1234)中去,是不是这样的” 不是的。

当对double类型进行强制转换的时候,内存本身的东西是不会变化的,只是把指向该处的指针装置转换成(void*),不会发生任何复制的操作. 我用下面的代码进行了一下测试: double a=10.0; double *b=&a; cout<<"&a = "<<&a<<" static_cast(&a) = "<(&a)<(b) = "<(b)<(&a) = 0012FE94 b = 0012FE94 static_cast(b) = 0012FE94 我用的是vc2003的编译器。

不知lz用的什么编译器?

请问在C++里static_cast是什么意思?

强制转化,就是把一个类型的变量a强制赋值给另外类型的变量b,如果能成功,变量b就具有一个值,如果不能成功就抛出一个错误。

建议用搜索一下 static_cast 这个词,你能学到更多东西。

const_cast 、static_cast 和 reinterpret_cast 分别怎样使用

const_cast 将一个常量的转化为非常量的 static_cast 也是数据类型转换用的,但是安全性由自己保证 reinterpret_cast 好像是一种二进制形式的类型转换 再送一dynamic_cast 作用也是类型转换,不过他提供了运行时安全检查,如果类型不匹配你还强制转换,结果将是一个空指针,并抛出异常。

ps:static_cast和dynamic_cast 是很常用的,static_cast的缺点没有运行时类型检查,dynamic_cast有,但是伴随的一些效率损耗。

有误请纠正,谢谢。

简单测评melbicom俄罗斯莫斯科数据中心的VPS,三网CN2回国,电信双程cn2

melbicom从2015年就开始运作了,在国内也是有一定的粉丝群,站长最早是从2017年开始介绍melbicom。上一次测评melbicom是在2018年,由于期间有不少人持续关注这个品牌,而且站长貌似也听说过路由什么的有变动的迹象。为此,今天重新对莫斯科数据中心的VPS进行一次简单测评,数据仅供参考。官方网站: https://melbicom.net比特币、信用卡、PayPal、支付宝、银联...

易探云:买香港/美国/国内云服务器送QQ音乐绿钻豪华版1年,价值180元

易探云产品限时秒杀&QQ音乐典藏活动正在进行中!购买易探云香港/美国云服务器送QQ音乐绿钻豪华版1年,价值180元,性价比超级高。目前,有四大核心福利产品推荐:福利一、香港云服务器1核1G2M,仅218元/年起(香港CN2线路,全球50ms以内);福利二、美国20G高防云服务器1核1G5M,仅336元/年起(美国BGP线路,自带20G防御);福利三、2G虚拟主机低至58.8元/年(更有免费...

云如故枣庄高防(49元)大内存2H2G49元8H8G109元

云如故是一家成立于2018年的国内企业IDC服务商,由山东云如故网络科技有限公司运营,IDC ICP ISP CDN VPN IRCS等证件齐全!合法运营销售,主要从事自营高防独立服务器、物理机、VPS、云服务器,虚拟主机等产品销售,适合高防稳定等需求的用户,可用于建站、游戏、商城、steam、APP、小程序、软件、资料存储等等各种个人及企业级用途。机房可封UDP 海外 支持策略定制 双层硬件(傲...

static_cast为你推荐
4k超高清视频下载为新手推荐几个获取4K片源的途径素数算法求100以内的素数的算法漏洞查询如何查找漏洞 从那做起怎么用电脑发短信怎么样用电脑给手机发短信?无处不在的意思心无所住是什么意思刷ip流量免费刷流量软件有哪些?哪个免费刷流量工具最好?shoujiao手机电池突然充不上电,是怎么回事?该怎么办?网络安全密钥网络安全密钥和wifi密码有什么区别cursorlocationsession("rs").cursorlocation=3是什么意思?erp系统教程在一个公司里怎样去学ERP
国际域名抢注 万网域名管理 香港加速器 hkbn 主机点评 themeforest la域名 老左博客 轻博客 表单样式 灵动鬼影 小米数据库 域名转接 免费吧 linux使用教程 联通网站 网通服务器 外贸空间 服务器维护 帽子云排名 更多