类型转换
1,当表达式里,有符号和无符号的char和short类型都将自动转换为int类型,在需要的情况下将自动转换为unsigned int。
2,在包含两种数据类型的任何计算里,两个值都被转换为两种类型里较高的级别
类型级别从高到低的顺序是:long double ,double,float,unsigned long long ,long long,unsigned long,long,unsigned int,int
4,在赋值语句里,计算的最后结果被转换为将要被赋值的那个变量的类型。
5,当作为函数的参数被传递时,char和short会被转换为int,float会被转换为double
示例程序:
//21.c--自动类型转换
#include<stdio.h>
int main()
{
char ch;
int i;
float fl;
fl=i=ch='A';
printf("ch=%c,i=%d,f1=%2.2f\n",ch,i,fl);
ch=ch+1;
i=fl+2*ch;
fl=2.0*ch+i;
printf("ch=%c,i=%d,fl=%2.2f\n",ch,i,fl);
ch=5212205.17;
printf("Now ch =%c\n",ch);
return 0;
}
运行结果:ch=A,i=65,f1=65.00
ch=B,i=197,fl=329.00
Now ch =--
指派:您也可能需要准确的数据类型,或者表明你是知道你在做类型转换的。
例如:mice=(int)1.6+(int)1.7
在某个量前放置用圆括号括起来的被希望转换成的类型名。