c++会在基本类型之间进行有意义的类型转换,以便他们自由的进行混合计算
转换:double ----> int: (
double d = 2.2;
int i = 7;
int m = 0;
d = d + i;
m = d * i; //先运算,再赋值,隐式类型转换,64.4---->64
cout << "d的类型:" << typeid(d).name() << endl;
cout << "i的类型:" << typeid(i).name() << endl;
cout << "m的类型:" << typeid(m).name() << endl;
cout << "d:" << d << endl
<< "i:" << i << endl
<< "m:" << m << endl;
typeid(d).name():g++下不会显示完整的类型名,而是简称
在windows下,则显示完整数据类型:
复数、初始化符号(=、{}):
double d1 = 2.3;
double d2{2.3};
complex z1 = 1;
complex z2{d1,d2};
complex z3 = {1,2};
cout << "d1:" << d1 << endl
<< "d2:" << d2 << endl
<< "z1:" << z1 << endl
<< "z2:" << z2 << endl
<< "z3:" << z3 << endl;
= 与 {}比较:
//符号= 与 {}比较
int i1 = 7.2;
//报错:from double to int
int i2{7.2};
int i3 = {7.2};
符号 “=” 是一种比较传统的形式,最早被C使用。如果拿不准的话,最好在C++中使用更通用的{}列表形式。
使用初始化器列表的形式可以确保不会发生某些可能导致信息丢失的类型转换(窄化类型转换)



