为什么我输出的结果是99;99.000000;99.000000?

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

花纪月

2015-02-04 20:19

编码在旁边,求好心人~
写回答 关注

3回答

  • onemoo
    2015-02-04 23:08:14
    char c = 'a'; // 这个是将'a'这个字符赋值给字符变量c
    int n = 'c';
    float f = 'c';
    double d = 'c';

    而后面这三个都是把'c'这个字符赋值给了n、f、d变量,'c'字符的ascii值是99。

    所以int变量n的值是99,float变量f的值是99.0,double d的值是99.0。

    printf函数用%d格式化输出int变量,所以输出了99。 而%f用于格式化float和double型变量,实际上printf将float和double都视为double型,所以都对应%f。默认输出的精度是小数点后6位,所以就是99.000000。


  • 羊_seven
    2015-02-04 21:20:21

    不用单引号

  • Fiona0126
    2015-02-04 20:29:47

    字符'c'的ASCII吗值是99..另外稍微说一下= =。不存在printf("%lf"..这种东西。。只有printf("%f"...)

    Fiona0... 回复林泽华

    ...两者在实现功能上还是有区别的。。

    2015-02-07 21:39:14

    共 2 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题