c语言中的类型转换就是直接转换了,比如
int n = 1;
int *a = &n;
char *b = (char*)a;//直接括号里写转换类型
这样很不安全
于是cpp中将类型转换分类,比如statiac_cast(相近类型的两个量转换), dynamic_cas(基类到继承类转换)等等
char *b = static_cast<char*>(a);//这是cpp里类型转换的标准方法,如果转换类型不相近,就会报错。更加安全
详情见http://www.jellythink.com/archives/205
例如
#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
int a = 49;
void *c = &a;//void *可以被任何指针类型赋值
char *b = (char*)c;//c里方法,cpp兼容
char * d = static_cast<char*>(c);
cout << *d << *b;
system("pause");
return 0;
}
结果: