1、_static_cast(静态类型转换,int 转换为char) 格式:TYPE B = static_cast<TYPE>(a) reinterpreter_cast(重新解释类型):专门用于指针类型的转换。 voidmain() {doubledpi =3.1415;//int num1 = dpi;//默认自动类型转换,会提示 warningintnum2 = static_cast<int>(dpi);//静态类型转换,在编译时会做类...
static_cast < type-id > ( expression ),该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性 它主要有如下几种用法: (1)用于基本数据类型之间的转换,如把int转换为char,把int转换成enum,但这种转换的安全性需要开发者自己保证(这可以理解为保证数据的精度,即程序员能不能保证自己...
比如:下面代码第二行会报错,“const_cast”: 无法从“const int”转换为“int”,值得注意的是,强转去掉常量属性之后通过指针修改变量,并不能改变原本常量的值,在【C++const常量玩出新花样】中有讲到 结果: 3,reinterpret_cast 用法:reinterpret_cast<type-id> (expression) 它可以把一个指针转换成一个整数,也可...
chara ='a';intb = static_cast<char>(a);//正确,将char型数据转换成int型数据double*c =newdouble;void*d = static_cast<void*>(c);//正确,将double指针转换成void指针inte =10;constintf = static_cast<constint>(e);//正确,将int型数据转换成const int型数据constintg =20;int*h = static_ca...
static_cast 运算符还可用于执行任何隐式转换,包括标准转换和用户定义的转换。 例如:C++ 复制 // static_cast_Operator_3.cpp // compile with: /LD /GR typedef unsigned char BYTE; void f() { char ch; int i = 65; float f = 2.5; double dbl; ch = static_cast<char>(i); // int to ...
即使从 Derived* 到Base* 的转换可以安全地使用 static_cast 完成(因为存在继承关系),依然可以使用 reinterpret_cast 来强制执行,但是不推荐这么做。 C:不相关类型的指针之间的转换 int* iptr = new int(42); // 转换 int* 到 char*,可能为了操作内存块的单个字节 char* cptr = reinterpret_cast<char*>(...
2.基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 3.把空指针转换成目标类型的指针。 4.把任何类型的变量转换成void类型。 注意:static_cast不能转换掉变量的const、volitale、unaligned修饰符。 dynamic_cast ...
static_cast 转换字符串地址static_cast 不能直接用于将字符串常量转换为地址的形式,因为字符串常量在 C++ 中已经是一个地址。我们可以用 static_cast 将字符串常量转换为 const void* 类型来查看其地址。让我们通过示例说明:#include <iostream>int main() {const char* str = "Hello, World!";// 输出字符串...
i = static_cast<int>(f); 此时结果,i的值为166。 2、C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。所谓“通常为操作数的位模式提供较低层的重新解释”也就是说将数据以二进制存在形式的重新解释。比如: int i; char *p = "This is a example."; ...