#include <stdio.h>
int main()
{
/* 自动类型转换规则如下: */
/* 1、参与运算的类型不同,则先转换为同一类型 */
/* 2、两种类型字节数不同,转换为高字节数的类型 */
/* 3、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 */
/* 4、若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型 */
/* 5、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。 */
/* 6、char型和short型参与运算时,必须先转换成int型 */
unsigned char a = 6;
int b = -20;/* unsigned char a --> int a */
a+b>0?puts("a+b>0"):puts("a+b<0");
printf("%x\r\n", a+b);
char c = -20;
unsigned int d = 6;/* char c --> unsigned int c */
c+d>0?puts("c+d>0"):puts("c+d<0");
printf("%x\r\n", c+d);
return 0;
}
【C语言】自动类型转换规则
最新推荐文章于 2023-03-04 17:13:27 发布