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有,但是伴随的一些效率损耗。

有误请纠正,谢谢。

Virmach($5.23/年)年付VPS闪购

每每进入第四季度,我们就可以看到各大云服务商的促销力度是一年中最大的。一来是年底的促销节日活动比较多,二来是商家希望最后一个季度冲刺业绩。这不还没有到第四季度,我们看到有些商家已经蠢蠢欲动的开始筹备活动。比如素有低价VPS收割机之称的Virmach商家居然还没有到黑色星期五就有发布黑五促销活动。Virmach 商家有十多个数据中心,价格是便宜的,但是机器稳定性和速度肯定我们也是有数的,要不这么低的...

PIGYun月付14.4元起,美国洛杉矶/韩国VPS七月6折

PIGYun是成立于2019年的国人商家,提供香港、韩国和美西CUVIP-9929等机房线路基于KVM架构的VPS主机,本月商家针对韩国首尔、美国洛杉矶CUVIP-AS29、GIA回程带防御等多条线路VPS提供6-8.5折优惠码,优惠后韩国首尔CN2混合BGP特惠型/美国洛杉矶GIA回程带10Gbps攻击防御VPS主机最低每月14.4元起。下面列出几款不同机房VPS主机配置信息,请留意不同优惠码。...

天上云:香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路

天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...

static_cast为你推荐
英文名网站介绍几个好的英语学习网站旺旺群发淘宝怎样旺旺群群发pps官网pps官方网站下载pps官方正式版下载网站公众号付费阅读为什么微信公众号阅读要收费?上行宽带上行宽带是什么?netbios协议NETBEUI协议有什么用?云输入法QQ云输入法怎样调整候选词的个数?特斯拉model3降价特斯拉股价为何暴跌?东兴证券网站东兴证券开户是假的吗?gbk内码高考姓名gbk内码查询
北京域名注册 哈尔滨服务器租用 河北服务器租用 vps租用 主机 softbank官网 促正网秒杀 web服务器架设 双11秒杀 网站卫士 服务器干什么用的 gtt t云 如何建立邮箱 vul 群英网络 新疆服务器 accountsuspended 时间服务器 asp.net虚拟主机 更多