将一种数据类型转换为另一种数据类型称为类型转换。
- 隐式类型转换
- 显式类型转换 ul>
当操作数具有不同数据类型时,编译器提供隐式类型转换。
它是由编译器通过将较小的数据类型转换为较大的数据类型自动完成的。
隐式类型转换
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<p>",a);
}</p>
输出
'Implicit value:40.000000
示例(显式转换)
实时演示
'#include<stdio.h>
main(){
int i=40;
short a;
//Explicit conversion
a=(short)i;
printf("explicit value:%d<p>",a);
}</p>
输出
'Explicit value:40