为什么' char'值必须有单引号而不是双引号?

时间:2018-01-22 23:01:49

标签: c++ char

目标

最后,我想知道为什么C ++不支持char letter = "C";但支持char letter = 'C';(请注意引号不同)。

代码

我使用Repl.it作为代码平台。

#include <iostream>

int main()
{
    char letter = "C";
    std::cout << letter;
}

错误消息

main.cpp:在函数&#39; int main()&#39;:

main.cpp:5:19:错误:来自&#39; const char *&#39;的无效转换去#char;&#39; [-fpermissive]      char letter =&#34; C&#34 ;;

2 个答案:

答案 0 :(得分:8)

它们是必需的,因为'C'"C"代表完全不同的类型 - 第一个是整数值,而第二个是两个字符的数组(字母'C'加上一个隐式空终止符)。两者都很有用,你需要一些方法来说明你想要哪一个,这就是不同类型的引用。

答案 1 :(得分:2)

单引号用于单个字符,而双引号用于创建字符串文字。它们意味着不同的东西。

查看more thorough explanation.