长度为1 的串等价于一个字符型常量吗?为什么...

如题所述

不相等。

容量不同:字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
占用内存空间大小不同:字符常量占一个字节的内存空间,字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节用来存放字符‘\0’,作为字符串的结束标志。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-26
不等价,字符串和字符有严格区别的;
比如: String a1 = "a";
char a2 = 'a';
是有区别的,char可以当做数字使用,可以强制转换为int,String不行。
String变量可以指向其他对象,但是String对象不可改变。
第2个回答  2012-12-26
不等于:
"a" != 'a'
你可以输出:
printf("%d\t%d\n", sizeof("a"), sizeof('a'));
看结果,你就知道了。

想知道细节的话,查内存:
const char *p = "a";
printf("%d\n", (int)p[0]);
printf("%d\n", (int)p[1]);
相似回答