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

有误请纠正,谢谢。

美国云服务器 1核 1G 30M 50元/季 兆赫云

【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...

rfchost:洛杉矶vps/双向CN2 GIA,1核/1G/10G SSD/500G流量/100Mbps/季付$23.9

rfchost怎么样?rfchost是一家开办了近六年的国人主机商,一般能挺过三年的国人商家,还是值得入手的,商家主要销售VPS,机房有美国洛杉矶/堪萨斯、中国香港,三年前本站分享过他家堪萨斯机房的套餐。目前rfchost商家的洛杉矶机房还是非常不错的,采用CN2优化线路,电信双程CN2 GIA,联通去程CN2 GIA,回程AS4837,移动走自己的直连线路,目前季付套餐还是比较划算的,有需要的可...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

static_cast为你推荐
win7中文语言包win7 64位中文系统、、怎么下载并使用 英文语言包c语言论坛有什么专门交流C语言的大论坛或社区?离线包地图包包是什么牌子旺旺群发淘宝怎样旺旺群群发爱短信官网求助。爱短信爱聊怎么用?上行宽带上行宽带和下行宽带什么意思cursorlocation如何用ENVI把不同图像中的相同地点的某个像素点的值读出来。按时间把这个点的值连起来,。谢谢好人。医院排队系统医院排队叫号系统有哪些功能?在线沟通有效沟通的六个要点泛微协同办公系统泛微oa怎么样?我想了解一下,有用过的同仁帮忙!发表下自己的观点(天津)
双线主机租用 sugarhosts 国内免备案主机 gomezpeer sockscap 日本空间 eq2 hnyd java虚拟主机 新天域互联 秒杀预告 vul 徐州电信 深圳主机托管 网站防护 shuangcheng windowsserver2008r2 so域名 wannacry勒索病毒 低价 更多