C++ 中 单引号 '' 和 双引号 "" 到底有什么区别?

0 阅读1分钟

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字节)
+-----+------+