4个回答
展开全部
变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。
自动转换
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:
1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4.char型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。
当参加算术或比较运算的两个操作数类型不统一时,将简单类型向复杂类型转换,
char(short) -> int(long) -> float -> double
而你的问题就是一个在不同变量在参与同一运算时的自动转换问题.
自动转换
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:
1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4.char型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。
当参加算术或比较运算的两个操作数类型不统一时,将简单类型向复杂类型转换,
char(short) -> int(long) -> float -> double
而你的问题就是一个在不同变量在参与同一运算时的自动转换问题.
展开全部
‘0’表示的是0的ASCII码
当加入5时,字符c的ASCII码为:‘0’+5,即5
若是c=‘a’+5
则输出为:f
当加入5时,字符c的ASCII码为:‘0’+5,即5
若是c=‘a’+5
则输出为:f
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'0'+5
运算类型为整形(int)
然后将此int类型强制赋值为char类型的变量c
c=='5'
运算类型为整形(int)
然后将此int类型强制赋值为char类型的变量c
c=='5'
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换成 int 后相加,再转换成 char 赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询