c++数据类型转换
展开全部
一、在c++中的数据类型转换一般有以下几种情况:
1、将一种算术类型的值赋给另一种算术类型的变量时,c++将对值进行转换
2、表达式中包含不同的类型时,c++将对值进行转换
3、将参数传递给函数时,c++将对值进行转换
二、在进行数据类型转换的时候要注意几点:
1、将小的数据类型转化为大的数据类型,不会出现问题,一般只是转化后所占用的字节更多了,但是要将大的数据类型转化为小的数据类型的话,就会造成数据的丢失。
2、将较大的浮点数转化为较小的浮点数,如double转化为float ,这会造成精度(有效数位)降低,值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
3、将浮点类型转换为整型,这会造成小数部分丢失,原来的值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
4、当运算涉及到两种数据类型时,一般是较小的类型将被转换为较大的类型。
三、强制类型转换:
1、形式:
a、(typeName) value (C语言的写法)
b、value (typeName) (c++的写法)
c、static_cast<> 可以将值从一种数值类型转换为另外一种数据类型,格式为: static_cast<typeName> (value)
1、将一种算术类型的值赋给另一种算术类型的变量时,c++将对值进行转换
2、表达式中包含不同的类型时,c++将对值进行转换
3、将参数传递给函数时,c++将对值进行转换
二、在进行数据类型转换的时候要注意几点:
1、将小的数据类型转化为大的数据类型,不会出现问题,一般只是转化后所占用的字节更多了,但是要将大的数据类型转化为小的数据类型的话,就会造成数据的丢失。
2、将较大的浮点数转化为较小的浮点数,如double转化为float ,这会造成精度(有效数位)降低,值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
3、将浮点类型转换为整型,这会造成小数部分丢失,原来的值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
4、当运算涉及到两种数据类型时,一般是较小的类型将被转换为较大的类型。
三、强制类型转换:
1、形式:
a、(typeName) value (C语言的写法)
b、value (typeName) (c++的写法)
c、static_cast<> 可以将值从一种数值类型转换为另外一种数据类型,格式为: static_cast<typeName> (value)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询