【问题标题】:Why do 'char' values have to have single quotation marks instead of double? [duplicate]为什么'char'值必须有单引号而不是双引号? [复制]
【发布时间】:2018-07-01 16:16:27
【问题描述】:

目标

最后想知道为什么C++不支持char letter = "C";却支持char letter = 'C';(注意引号不一样)。

代码

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

#include <iostream>

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

错误信息

main.cpp:在函数'int main()'中:

main.cpp:5:19: 错误:从 'const char*' 到 'char' 的无效转换 [-fpermissive] char 字母 = "C";

【问题讨论】:

  • 因为这是语法。仅此而已……
  • 你明白为什么C++不允许int i = {1,2,3,4,5};吗?原理是一样的。
  • 人们总是可以创建自己的编程语言。我想它适用于硕士学位......至少是它的开始。
  • "C" 是一个字符串。它是零终止的并存储在内存中。分配时,它会给出地址。 'C' 是一个单字节,只是复制到变量中。
  • 因为标准是这样说的:lex.ccon

标签: c++ char


【解决方案1】:

之所以需要它们,是因为 'C'"C" 代表完全不同的类型 - 第一个是整数值,而第二个是两个字符的数组(字母 'C' 加上一个隐含的空终止符)。两者都很有用,您需要通过某种方式来说明您想要哪一个,这就是不同类型的引号的作用。

【讨论】:

    【解决方案2】:

    单引号用于单个字符,而双引号用于创建字符串文字。它们的含义不同。

    查看more thorough explanation.

    【讨论】:

    • 在 c++ 中有诸如 多字节字符文字 之类的东西。很少使用,但可用。
    猜你喜欢
    • 2011-05-18
    • 2014-05-13
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多