'a'和"a"有什么区别?
What is the difference between 'a' and "a"?
我正在学习C++,但有一个我找不到答案的问题。
char
常量(使用单引号)和字符串常量(使用双引号)有什么区别?
我所有的搜索结果都与字符数组与std::string
有关。我追求'a'
和"a"
之间的区别.
执行以下操作是否有区别:
cout << "a";
cout << 'a';
'a'
是一个字符文字。它是char
类型,在大多数系统上的值为97(字母a
的ASCII/Latin-1/Unicode编码)。
"a"
是一个字符串文本。 它属于 const char[2]
类型,指的是一个 2 char
s 的数组,值为 'a'
和 ' '
。在大多数(但不是全部)上下文中,对 "a"
的引用将隐式转换为指向字符串第一个字符的指针。
双
cout << 'a';
和
cout << "a";
碰巧产生相同的输出,但出于不同的原因。第一个打印单个字符值。第二个连续打印字符串的所有字符(终止' '
除外)——恰好是单个字符'a'
。
字符串文本可以是任意长的,例如 "abcdefg"
。字符文本几乎总是只包含一个字符。(您可以使用多字符文本,例如 'ab'
,但它们的值是实现定义的,它们很少有用。
(在 C 中,您没有询问,'a'
属于 int
型,"a"
属于 char[2]
型(没有const
))。
"a"
是一个字符数组,恰好只包含一个字符,或者如果算上最后的