"
一、在c++中的数据类型转换一般有以//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg1NTM4NA==.html
下几种情况:1、将一种算术类型的值赋给另一种算术类型的变量时,c++将对值进行转换
2、表达式中包含不同的类型时,c++将对值进行转换
3、将参数传递给函数时,c++将对值进行转换
二、在进行数据类型转换的时候要注意几点:
1、将小的数据类型转化为大的数据类型,不会出现问题,一般只是转化后所占用的字节更多了,但是要将大的数据类型转化为小的数据类型的话,就会造成数据的丢失。
2、将较大的浮点数转化为较小的浮点数,如double转化为float ,这会造成精度(有效数位)降低,值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
3、将浮点类//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwMjMxNg==.html
型转换为整型,这会造成小数部分丢失,原来的值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。4、当运算涉及到两种数据类型时,一般是较小的类型将被转换为较大的类型。
三、强制类型转换:
1、形式:
a、(typeName) value (C语言的写法)
b、value (typeName) (c++的写法)
c、static_cast 可以将值从一种数值类型转换为另外一种数据类型,格式为: static_cast (value)
例如:
1 #include
2 int main()
3 {
4 using namespace std;
5 int auks ,bats , coots;
6 auks=19.99+11.99;
7
8 bats=(int)19.99+(int)11.99;
9 coots=int(19.99)+int(11.99);
10 cout[""auks=""[ auks ["",bats = ""[ bats;
11 cout["",coots = ""[coots[endl;
12
13 char ch ='Z';
14 cout[""The code for "" [ ch [ ""is"";
15 cout[int(ch)[endl;
16 cout[""yes,the code is "";
17 cout[static_cast span style=""color: rgba(0, 0, 255, 1)"">int[endl;
18 return 0;
19 }
结果如下:
auks=31,bats = 30,coots = 30
The code for Zis90
yes,the code is 90
四、总结:
整型数据类型大小排序: bool , char , signed char, unsigned char, short , unsigned short , int , unsigned int ,long , unsigned long , long long , unsigned long long
浮点数排序大小:float , double , long double
"