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
广告