#include <stdio.h> int main() { char c = 'a'; int n = c ; //将c赋值给n float f = c; //将c赋值给f double d = c; //将c赋值给d printf("%d\n",n); printf("%f\n",f); printf("%lf\n",d); return 0; }

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

慕莱坞4462739

2017-08-03 17:57

第二个输出不是单精度吗?为啥运行结果是97.000000

写回答 关注

3回答

  • qq_陌_34
    2017-08-03 18:45:21
    这里的精度指的是有效数字的位数,后面的零都是为了区别于整型的,所以默认是那么多个,


  • ICQ小乐乐
    2017-08-03 18:37:16

    #include <stdio.h>

    int main() 

        char c = 'a'; 

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

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

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

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

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

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

        return 0;

    }

    单精度(float--%f)精确到小数点后第6位,双精度(double--lf)精确到小数点后15位

    ICQ小乐乐

    回复 Jo丶因为c赋值给n,而c=‘a’,由于n的类型是int,所以被强制转换了,a的ASCII码对应的值是97

    2017-09-15 17:31:20

    共 3 条回复 >

  • qq_万人呐喊我耀宗_0
    2017-08-03 18:37:05

    #include <stdio.h>

    int main()

    {

        char c = 'a';

        int a =97;

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

        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 在前面讲解过小数的

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题