关于c:常见的数据类型转换

1、什么叫做主动类型转换?
规定:
(1)若参加运算量的类型不同,则先转换成同 类型,而后进行运算。
(2)转换按数据长度减少的方向进行,以保障精度不升高。如int 型和lbng 型运算时,
先把int量转成long型后再进行运算。
(3)所有的浮点运算都是以双精度进行的,即便仅含float单精度量运算的表达式,也要
先转换成double 型,再作运算。
(4)char型和short型参加运算时,必须先转换换成int型。

举个栗子
假如已指定i为整型变量,f为float型变量,d为double型变量,e为long型变量,表达式为:10+’a’4i*f-d/e,则表达式的运行秩序?
运行程序:
第一步运行: i*f
第二步运行: d/e
第三步运行: 10+’a’
第四步运行: 10+’a’+i*f
第五步运行: 10+’a’+i*f–d/e
语句编写:

#include<stdio.h>
int main()
{    
    int i=2;
    float f=1.5;
    double d=4.0;
    long e=2;
    printf("i*f=%f,i转化为float类型参加运算",i*f);
    printf("d/e=%lf,e转化为double类型参加运算",d/e);
    printf("10+'a'=%d,'a'转化为int类型参加运算",10+'a');
    printf("10+'a'+i*f=%f,int转化为float类型",10+'a'+i*f);
    printf("10+'a'+i*f-d/e=%lf.float转化为double类型",10+'a'+i*f-d/e);
    return 0;
}

运行后果:

2、强制类型转换如何应用?
个别模式
(类型说明符)(表达式)
举个栗子:
(double)a 将变量a强制转换为double类型
(int)(x+y) 将x+y的值强制转换为int类型
(float)(5%3)将5%3的值强制转换为float类型
(float) x/y 将x强制转换成float类型后,在参加运算

语句编写:

#include<stdio.h>

int main()
{   
    float f;
    f=9.8;
    printf("(int)f=%d,f=%f\n",(int)f,f);
    return 0;
}

运行后果:

留神阐明:
●表达式应该用括号括起来。
●进行强制类型转换时,失去的是一个所需类型的两头变量,原来变量的类型并未产生扭转

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据