猿问

求解释,在c++中static_cast是干嘛的啊?有什么特殊含义吗?

哪位大神说具体点。感激不尽

大话西游666
浏览 515回答 2
2回答

倚天杖

强制转化,就是把一个类型的变量a强制赋值给另外类型的变量b,如果能成功,变量b就具有一个值,如果不能成功就抛出一个错误。C++共有四种转换:static_cast,dynamic_cast,reinterpret_cast,const_caststatic_cast相当于传统的C语言里的强制转换,效果就相当于加个括号:int a=(long)b;建议用搜索一下 static_cast 这个词,你能学到更多东西。

MM们

static_cast在C++中用于将表达式的值转换为指定的类型,但没有运行时类型检查来保证转换的安全性。主要有以下用法:(1)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。(2)用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。(3)把空指针转换成目标类型的空指针。(4)把任何类型的表达式转换成void类型。注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。
随时随地看视频慕课网APP
我要回答