这两个的结果不一样,为什么?

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

InnoFang

2015-08-19 18:08

正确答案

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

得到的结果是
97
97.000000
97.000000

另一个

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

得到的结果是
99
99.000000
99.000000

区别在于  c   和    'c'   有什么不一样?

 

写回答 关注

1回答

  • Perona
    2015-08-19 18:16:45
    已采纳

    不加引号的是变量。加引号的是字符。

    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);

    这里赋的值都是变量c的值字符a。

     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);

    这里除了变量c的值是字符a,其他的变量赋的值都是字符c。

    InnoFa...

    非常感谢!

    2015-08-19 18:20:52

    共 1 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题