2、C++中的变量类型及转换
C++中的数据类型包括常量与变量,而敞亮和变量都具有类型。有这些数据类型还能构成更加复杂的额数据结构;
例如利用指针和结构体类型可以构成表、树、栈等复杂的数据结构。
C++中可以使用的数据类型如下图:
变量的类型可以互相转换,分为自动转换和强制转换:
- 自动转换(范围最大化原则):
- 若参与运算量的类型不同,则先转换成同一类型,然后进行运算;
- 转换按数据长度增加的方向进行,以保证精度不会降低。如int型和long型 运算时,先把int型转换成long型后在进行运算。
- 所有的浮点运算 都是以双精度进行的,即使仅含有float单精度量运算的表达式,也要先转换成double型在做运算。
- char型和short型参与运算时,必须先转换成int型。
- 在赋值运算中,复制好 两边量的数据类型不同时,复制好右边量的类型将转换成左边量的类型。如果右边梁的数据类型长度比左边长时,将丢失一部分数据,会降低精度。
int a = 1; float b = 2.3; a = b; cout << "a= " << a << endl; //输出为2,丢失小数部分 int a1 = 1; double b1 = 2.3; cout << "a1+b1= " << a1 + b1 << endl; //输出为a1+b1=3.3
- 强制转换:
- 强制转换通过类型转换运算来实现,其一般表现形式如下:
int aa = 1; float bb = 2.3; cout << "aa+bb=" << aa + (int)bb << endl; //输出为aa+bb=3
一个初识C++的小白