C++ 中 单引号 '' 和 双引号 "" 到底有什么区别?
- 单引号
' ':表示 单个字符(char) - 双引号
" ":表示 字符串(char*/string)
区别
类型不同
'a'→ char 类型(1 字节)"a"→ const char* 类型(指针,存放字符串地址)
长度不同
'a':只有 1 个字符"a":2 个字符('a' + 结束符 '\0')
能放多少内容?
-
单引号:只能放 1 个字符
'a' ✅ 'ab' ❌ 错误! -
双引号:可以放任意长度字符串
"hello" ✅ "a" ✅ "" ✅(空字符串)
易错
unordered_map<char, TrieNode*> children;
children['a']; // ✅ 单引号是字符
children["a"]; // ❌ 双引号是字符串,不能当 char 用
内存里长什么样?
单引号 'a'
+-----+
| a | (1字节)
+-----+
双引号 "a"
+-----+------+
| a | \0 | (2字节)
+-----+------+