为何f转为双精度浮点了?

来源:2-8 自动类型转换

慕用3310659

2017-03-14 22:48

#include <stdio.h>

int main()

{

    char c = 'a';

    int n =c;         //将c赋值给n

    c=97;

    float f =c;       //将c赋值给f

    

    double d =c;      //将c赋值给d

    printf("%d\n",n);

    printf("%f\n",f);

    printf("%lf\n",d);

    return 0;    

}

为何f转为双精度浮点了?

写回答 关注

2回答

  • 飞扬的蒲公英
    2017-03-14 23:14:08
    已采纳
  • 黑蝎子
    2017-03-14 23:08:29

    首先你搞明白什么叫精度,然后再提出这个问题,你自己就会豁然开朗了

    因为你的 c 实则为 char 类型 , 97 等于 两个字符串, 你那样赋值不报错也不给警告?

    慕用3310...

    提交没有报错,因为结果就是生成了97,97.000000,97.000000 %f应该就是输出小数点后6位数吧

    2017-03-14 23:52:48

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题