数据有不同的类型,不同类型数据之间进行混合运算时涉及到类型的转换问题。
转换的方法有两种:
- 自动类型转换(隐式转换):遵循一定的规则,由编译系统自动完成
- 强制类型转换(显示转换):把表达式的运算结果强制转换成所需的数据类型
- 语法格式: (类型)变量或常量
#include <stdio.h>
int main() {
// 隐式转换(自动转换):编译器自动转换
int a = 11;
double b = a; //将a的值,11,转换为11.0000,再给b赋值
printf("b = %lf\n", b);
printf("a = %d\n", a);
// 强制类型转换,用户转换, (类型)变量或常量
int m = 3;
int n = 2;
b = (double)m/n;
printf("b = %lf\n", b);
b = (double)3/2;
printf("b = %lf\n", b);
// 类型转换原则:数据类型小的往数据类型大的转
int c = 100;
char d = (char)c; //没有问题
printf("d = %d\n", d);
// 大的往小的转,数据可能会丢失
c = 129;
d = (char)c;
printf("d = %d\n", d);
// 小的往大的转
long long big = (int)c;
printf("big = %lld\n", big);
return 0;
}