C语言中的隐式和显式类型转换是什么?


将一种数据类型转换为另一种数据类型称为类型转换

  • 隐式类型转换
  • 显式类型转换

隐式类型转换

  • 当操作数的数据类型不同时,编译器会提供隐式类型转换。

  • 它由编译器自动完成,即将较小的数据类型转换为较大的数据类型。

int i,x;
float f;
double d;
long int l;

这里,上述表达式最终计算结果为“double”值。

示例

以下是隐式类型转换的示例:

int x;
for(x=97; x<=122; x++){
   printf("%c", x); /*Implicit casting from int to char %c*/
}

显式类型转换

  • 显式类型转换是由用户使用(type)运算符完成的。

  • 在执行转换之前,会进行运行时检查以查看目标类型是否可以容纳源值。

int a,c;
float b;
c = (int) a + b

这里,'a+b'的结果显式转换为'int',然后赋值给'c'。

示例

以下是显式类型转换的示例:

int x;
for(x=97; x<=122; x++){
   printf("%c", (char)x); /*Explicit casting from int to char*/
}

让我们通过示例了解这两种转换类型的区别:

示例(隐式转换)

 在线演示

#include<stdio.h>
main(){
   int i=40;
   float a;
   //Implicit conversion
   a=i;
   printf("implicit value:%f
",a); }

输出

Implicit value:40.000000

示例(显式转换)

 在线演示

#include<stdio.h>
main(){
   int i=40;
   short a;
   //Explicit conversion
   a=(short)i;
   printf("explicit value:%d
",a); }

输出

Explicit value:40

更新于:2023年10月22日

29K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告