亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

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 后再相加。

寻常算术转换

寻常算术转换 隐式执行,将操作数转为通用类型。编译器先执行整型提升;若类型仍不同,则按以下层级转换为最高类型:

C 语言类型转换完全指南:强制转换与隐式转换

赋值运算符和逻辑运算符 &&、|| 不执行寻常算术转换。示例:

Live Demo
#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语言

  1. 精密铸造终极指南:工艺原理、行业应用与核心优势
  2. 熔模铸造:解锁成本节约与品质提升(二)
  3. 压铸工艺详解:高精度、高效率与生产优势全面解析
  4. 掌握 C# 类型转换:隐式、显式、Parse 与 Convert 全方位指南
  5. C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
  6. C++变量类型详解:内存布局、取值范围与操作集
  7. C# 数据类型权威指南:值类型、引用类型、指针类型与 sizeof 实战
  8. 深入理解 C# 类型转换:隐式与显式转换全解析
  9. C# 可空类型详解:安全处理 Null 值的最佳实践
  10. C# 特性完全指南:预定义特性、自定义特性与元数据编程
  11. 精通Python类型转换与强制转换:综合指南
  12. 掌握 Java 类型转换:从自动拓宽到强制收窄及更多