看看这两段代码 我用VC++6.0 编译出来都一样???

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

__0

2015-03-05 17:08

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


#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;   
}

写回答 关注

1回答

  • onemoo
    2015-03-06 08:54:50

    你是想问为什么直接用c来赋值也没错吗?

    char也属于整型。

    用整型给浮点型变量赋值时,整型会先转换为浮点型(还有一些细则,但基本是这个逻辑)。

    所以不管你用int还是char来做初值,它们都会转成浮点型。转换后浮点数的整数部分就是整型的数值。

    所以你这两个程序的输出一样。

    __0

    就是说这两段代码没区别 都是对的?

    2015-03-06 12:28:32

    共 1 条回复 >

C语言入门

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

926209 学习 · 20797 问题

查看课程

相似问题