1、static_cast 静态类型转换
static_cast:静态类型转换。如int转换成char。
static_cast<>() :静态类型转换,编译的时c++编译器会做类型检查;基本类型能转换 但是不能转换指针类型。
静态的类型转换: 在编译的时 进行基本类型的转换 能替代c风格的类型转换 可以进行一部分检查。
2、实例演练
#include <iostream>
using namespace std;
int main(){
double n = 10.123456;
//C++的新式的类型转换运算符
int num = static_cast<int>(n);
cout << "C++的新式的类型转换运算符,num = " << num << "\n";
//C语言旧式类型转换
int num1 = (int)n;
cout << "C语言旧式类型转换,num1 = " << num1 << "\n";
//隐式类型转换
int num2 = n;
cout << "隐式类型转换,num2 = " << num2 << "\n";
char *p1 = "fan";
int *p2 = NULL;
p2 = (int*)p1;
//基本类型可以转换,但是不可以转换指针类型;
//p2 = static_cast<int*>(p1);
return 0;
}
![]()
注意:不可以转换指针类型
![]()
C语言能隐式类型转换的,在c++中可以用 static_cast<>()进行类型转换 。
C++编译器在编译检查一般都能通过。