static_cast 静态类型转换

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++编译器在编译检查一般都能通过。



posted @ 2025-03-25 10:32  孤情剑客  阅读(246)  评论(0)    收藏  举报