数据类型的自动转换之隐形转换
1、程序:
//数据类型的自动转换之隐形转换
#include<stdio.h>
void main()
{
char ch = 'A'; //ASCII码编号为65
short num = 100;
int num1 = 1000;
float num2 = 1000.000;
double num3 = 10000.000;
printf("char1=%d,short2=%d,int4=%d,float4=%d,double8=%d\n", sizeof(ch), sizeof(num), sizeof(num1), sizeof(num2), sizeof(num3));
printf("sizeof=%d,ch+num=%d\n", sizeof(ch + num), ch+num);//ch自动转换为int类型数据再与num相加,此时num也已自动转换为int类型数据
printf("sizeof=%d,num+num1=%d\n", sizeof(num+num1),num+num1);//num自动转换为int类型数据再与num1相加
printf("sizeof=%d,num1+num2=%f\n", sizeof(num1+num2),num1+num2);//num1自动转换为float类型数据再与num2相加(num2自动转换为double类型)
printf("sizeof=%d,num2+num3=%f\n", sizeof(num2 + num3), num2 + num3);//num2自动转换为double类型数据再与num3相加
getchar();
/*综上所述,数据类型的自动转换规则为:char/short-->>int-->>unsigned int-->>long-->>double<<--float*/
}
2、运行结果: