string
转char[]
char x[10];
strcpy(x,
String
.c_str());
String
转int
int i=
stoi(
String
);
String
转
float
float f=stof(
String
);
String
转
doubel
doubel d=stod(
String
);
Chat
转int
int i=atoi(
Chat
);
任意类型
转string
string=
to_string(任意类型);
自动类型转换
在下列四种情况中计算机自动进行类型转换:
- 在混合类型的算术表达式中
- intival=3; doubledval=3.1415 ival+dval;//ival被提升为double类型:3.0
- 用另外一种类型的表达式赋值
- int*pi=NULL;//NULL(0)被转换成了int*类型的空指针值
- 用一个表达式传递给一个函数调用
- externdoublesqrt(double); sqrt(2);//2被提升为double类型:2.0
- 从一个函数返回一个表达式
- doubledifference(intival1,intival2) { returnival1-ival2;//返回值被提升为double类型. }
强制类型转换
C++显式转换包含四种转换:
用法:static_cast < type-id > ( expression )
说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
用法:dynamic_cast < type-id > (expression)
说明:该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*;
用法:const_cast<type_id> (expression)
说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
用法:reinterpret_cast<type-id> (expression)
说明:type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。