#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;
}
单引号括起来为字符,对应值为a的ASCII值,双引号括起来为字符串,char c = "a";这样是不合法的,通常我们是这样来定义的,char *c = "a";或者开一个buffer来存放字符串,char buff[2] = "a";
再补充一点,C语言中,字符串并不是一种数据类型,准确来讲它是数组,字符数组,结束符为 \0,比如,“abc”,它的长度是多大呢,答案是4个字节,它在内存是这么存的:{‘a’,'b', 'c', '\0'},所以是4个字节
单引号代表的是一个字符,也就是输出的字符a的ASCALL码,双引号中代表a是一个字符串,这个输出应该是有其特定的计算方法或者乱码,至少在我的机子上运行的是44
用双引号表示字符串,字符串包含两个字符,a和\0,所以输出不一样