3.4自动类型转换与强制转换运算符

倾然丶 夕夏残阳落幕 提交于 2020-03-08 10:53:05

3.4.1表达式中的自动类型转换

C编译器在对操作数进行运算之前将所有的操作数都转换成范围较大的操作数类型,称为类型的提升。

3.4.2赋值中的自动类型转换

/*若赋值运算符左侧变量类型和右侧变量类型不一致,将右侧表达式的值转换成左侧变量的类型*/
#include<stdio.h>
int main()
{
    int n=256;
    float f=3.6;
    double d=2.5;
    n=f;
    f=n;
    d=f;
    printf("n=%d\n",n);
    printf("f=%f\n",f);
    printf("d=%f\n",d);
}
输出:
    n=3
    f=3.000000
    d=3.000000

3.4.3强制类型转换运算符

/*(类型)表达式*/
#include<stdio.h>
int main()
{
    int m=5;
    printf("m/2=%d\n",m/2);
    printf("(float)(m/2)=%f\n",(float)(m/2));
    printf("(float)m/2=%f\n",(float)m/2);
    printf("m=%d\n",m);
}
输出:
    m/2=2
    (float)(m/2)=2.000000
    (float)m/2=2.500000
    m=5

3.5常用的标准数学函数

//求三角形面积
#include<stdiio.h>
#include<math.h>//要包含相应的头文件
int main()
{
    float a,b,c,s,area;
    scanf("%f,%f,%f",&a,&b,&c);
    s=(a+b+c)/2;
    area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
    printf("areaa=%f\n",area);
}
/*常用的标准数学函数:
sqrt(x),求一个数的平方
fabs(x),求一个数的绝对值
log(x),lnx
log10(x),lgx
exp(x),e^x
pow(x,y),x^y
sin(x),sinx
cos(x),cosx
*/
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!