类型转换
272字小于1分钟
2025-05-28
隐式转换
大小 double > float > long long > long > int > short
小转大,因为 double 比 int 大,所以最后的结果是double类型的
int a = 10;
double b = 3.14;
// a + b 的结果最后就为double
double c = a + b;
注意:short
和 char
这两个类型的进行运算会先提升成 int
类型,然后在进行计算
short a = 10;
short b = 20;
int c = a + b;
char
类型变量也能被赋值为整常数,但要确保这个整常数的值在 char
类型所能表示的范围之内
char a = 10;
short b = 20;
int c = a + b;
在ASCII码中a = 97
,所以最后输出的结果为 98,并且是int
类型的
char a = 'a';
printf("%d", (a + 1));
char a = 97;
printf("%d\n", a); // 97
printf("%c\n", a); // a
强制转换
所谓的强制转换就是 大转小,强制将 大的 转成 小的,前提是大类型里面的值不能超出小类型的取值范围
int a = 10;
short b = (int)a;
弊端:可能会导致数据错误