C 语言类型转换完全指南:强制转换与隐式转换
将一种数据类型转换为另一种称为类型转换或类型强制转换。例如,要将 long 值存入 int,可将 long 强制转换为 int。使用强制转换运算符显式转换,语法如下:
(type_name) expression
以下示例中,强制转换运算符使两个整数变量相除变为浮点运算:
Live Demo#include <stdio.h>
main() {
int sum = 17, count = 5;
double mean;
mean = (double) sum / count;
printf("Value of mean : %f\n", mean );
}
编译执行输出:
Value of mean : 3.400000
注意强制转换运算符优先级高于除法,sum 先转为 double 再除以 count,结果为 double。
类型转换分隐式转换(编译器自动执行)和显式转换(使用强制转换运算符)。良好编程习惯建议:需要类型转换时显式使用强制转换运算符。
整型提升
整型提升是将比 int 或 unsigned int “小”的整型值转换为 int 或 unsigned int 的过程。例如字符与整数相加:
Live Demo#include <stdio.h>
main() {
int i = 17;
char c = 'c'; /* ASCII 值 99 */
int sum;
sum = i + c;
printf("Value of sum : %d\n", sum );
}
编译执行输出:
Value of sum : 116
sum 为 116,因编译器执行整型提升,将 'c' 转为 ASCII 值 99 后再相加。
寻常算术转换
寻常算术转换 隐式执行,将操作数转为通用类型。编译器先执行整型提升;若类型仍不同,则按以下层级转换为最高类型:
赋值运算符和逻辑运算符 &&、|| 不执行寻常算术转换。示例:
#include <stdio.h>
main() {
int i = 17;
char c = 'c'; /* ASCII 值 99 */
float sum;
sum = i + c;
printf("Value of sum : %f\n", sum );
}
编译执行输出:
Value of sum : 116.000000
先将 c 转为整型,因最终赋值给 float,寻常算术转换再将 i 和 c 转为 float 相加,得 float 结果。
C语言
- 精密铸造终极指南:工艺原理、行业应用与核心优势
- 熔模铸造:解锁成本节约与品质提升(二)
- 压铸工艺详解:高精度、高效率与生产优势全面解析
- 掌握 C# 类型转换:隐式、显式、Parse 与 Convert 全方位指南
- C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
- C++变量类型详解:内存布局、取值范围与操作集
- C# 数据类型权威指南:值类型、引用类型、指针类型与 sizeof 实战
- 深入理解 C# 类型转换:隐式与显式转换全解析
- C# 可空类型详解:安全处理 Null 值的最佳实践
- C# 特性完全指南:预定义特性、自定义特性与元数据编程
- 精通Python类型转换与强制转换:综合指南
- 掌握 Java 类型转换:从自动拓宽到强制收窄及更多