C语言 - 类型转换

C语言 - 类型转换 首页 / C语言入门教程 / C语言 - 类型转换

类型转换是一种将变量从一种数据类型转换为另一种数据类型的方法,如,可以将" long"转换为" int"。

(type_name) expression

考虑以下示例,其中强制转换运算符将一个整数变量除以另一个作为浮点运算来执行-

#include <stdio.h>

main() {

   int sum=17, count=5;
   double mean;

   mean=(double) sum/count;
   printf("Value of mean : %f\n", mean );
}

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-type-casting.html

来源:LearnFk无涯教程网

Value of mean : 3.400000

此处应注意,强制转换运算符的优先级高于除法,因此 sum 的值首先转换为类型 double ,最后将其除以计数,得到一个双精度值。

类型转换可以是隐式的,可以由编译器自动执行,也可以通过使用 cast运算符明确指定。

整数提升

整数提升是将小于" int "或" unsigned int "的整数类型的值转换为 int 或 unsigned的过程int 。考虑添加一个带有整数的字符的示例-

#include <stdio.h>

main() {

   int  i=17;
   char c='c'; /* ascii 值为 99 */
   int sum;

   sum=i + c;
   printf("Value of sum : %d\n", sum );
}

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-type-casting.html

来源:LearnFk无涯教程网

Value of sum : 116

在这里,sum的值为116,因为编译器在执行实际加法运算之前正在进行整数提升并将'c'的值转换为ASCII。

算术转换

通常执行算术转换以将其值转换为通用类型。编译器首先执行整数提升;如果操作数仍然具有不同的类型,则将它们转换为在以下层次结构中显示最高的类型-

clojure desktop button

通常不对赋值运算符执行逻辑运算,也不对逻辑运算符&&和||执行运算。让无涯教程以以下示例来了解概念-

#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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

编辑训练营 -〔总编室〕

移动端自动化测试实战 -〔思寒〕

人人都能学会的编程入门课 -〔胡光〕

Electron开发实战 -〔邓耀龙〕

Java业务开发常见错误100例 -〔朱晔〕

手机摄影 -〔@随你们去〕

Kubernetes入门实战课 -〔罗剑锋〕

手把手带你写一个MiniSpring -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)