C++ 中 单引号 ‘‘ 和 双引号 ““ 到底有什么区别?
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字节) +-----+------+