C语言不同数据类型的混合运算

在c语言中,数据类型级别由低到高为(由存储长度决定):
在这里插入图片描述
例如:

int a;
a = 'A' + 1.6;

1、在运算过程中,如果参与运算的数据类型不同时,数据将由低类型转化为高类型,即’A’由char类型转换为double类型;(存储长度较短的转换为存储长度较长的,且不丢失精度)

2、在赋值运算时,如果赋值号两边的数据类型不同,赋值号右边的类型将转换为左边的类型。如果右边的数据类型长度比左边长时,将丢失一部分数据,(如65537用int表示,为0000 0000 0000 0001 0000 0000 0000 0001,转化为short的时候高两位字节丢失,于是变成1),这样会降低精度,所以a的值是字符’A’的ASCII值加1。
C语言不同数据类型的混合运算_第1张图片

你可能感兴趣的:(原理解析,程序解析)