为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要用单引号a输出是97双引号a是64


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

}


正在回答

3 回答

单引号括起来为字符,对应值为a的ASCII值,双引号括起来为字符串,char c = "a";这样是不合法的,通常我们是这样来定义的,char *c = "a";或者开一个buffer来存放字符串,char buff[2] = "a";

再补充一点,C语言中,字符串并不是一种数据类型,准确来讲它是数组,字符数组,结束符为 \0,比如,“abc”,它的长度是多大呢,答案是4个字节,它在内存是这么存的:{‘a’,'b', 'c', '\0'},所以是4个字节

1 回复 有任何疑惑可以回复我~

单引号代表的是一个字符,也就是输出的字符a的ASCALL码,双引号中代表a是一个字符串,这个输出应该是有其特定的计算方法或者乱码,至少在我的机子上运行的是44

0 回复 有任何疑惑可以回复我~

用双引号表示字符串,字符串包含两个字符,a和\0,所以输出不一样

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要用单引号a输出是97双引号a是64

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信