问答详情
源自:2-8 自动类型转换

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

编码在旁边,求好心人~

提问者:花纪月 2015-02-04 20:19

个回答

  • 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"...)