C语言 类型转换
数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。
转换的方法有两种:
- 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。
- 强制类型转换:把表达式的运算结果强制转换成所需的数据类型。
类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
隐式转换
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { float p = 3.14; int w = 2; // 隐式转换 float sum = p*w; printf("%f ", sum); return 0; }
强制转换案例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { float p = 3.14; int w = 2; // 数据类型 强制转换:强制类型转换运算符不会四舍五入 // 表达式 强制转换:四舍五入(int sum = (int)(p*w);) int sum = (int)p * w; printf("%d ", sum); return 0; }