猿问

一个简单的小白问题。

#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

xianxian_03522511
浏览 1731回答 5
5回答

大咪

%d是占位符,%是引导符,d表示十进制整数的形式printf("%d",n);%d就是输出的时候的占位符,占n的位 表示以十进制整数形式输出n然而你的变量c定义为字符型,现在要讲字符型复制给整形的n,类型不能强制转换,你没手动做转换,所以打出来的是他对应的ascll码97吧。。。我觉得是这样的你这个在java中这么写都是不对的- -程序都报错。。。

木柘

printf("%c\n",(char)n); //输出a

xianxian_03522511

没人呀!!!太简单了嘛。。就是求解释。。弄不懂
随时随地看视频慕课网APP
我要回答