操作数类型不兼容("char"和"const char*")

Lev*_*egu 9 c c++ arrays types

我收到以下错误...

操作数类型不兼容("char"和"const char*")

...当试图执行if语句时.我假设我不理解输入值是如何存储的,虽然我不确定我是否可以将其转换为匹配类型?

要重现的示例代码是:

char userInput_Text[3];

if (userInput_Text[1] == "y") {
    // Do stuff.
}
Run Code Online (Sandbox Code Playgroud)

我不确定是什么导致了这个.看起来一个类型是char而另一个是const char指针,虽然我不确定是什么,作为参考,当我不使用数组时也会发生这个错误).

提示/反馈将非常感激.

Kar*_*oll 29

双引号是C++中c字符串的快捷语法.如果要比较单个字符,则必须使用单引号.您只需将代码更改为:

char userInput_Text[3];

if (userInput_Text[1] == 'y') { // <-- Single quotes here.
    // Do stuff.
}
Run Code Online (Sandbox Code Playgroud)

以供参考:

  • "x" = const char *
  • 'x' = char

  • 从技术上讲,“x”是一个“const char (&amp;)[2]”,而不是一个“const char *”。 (3认同)
  • @LeviTheDegu 作为一个用 ' 和 " 表示相同意思的语言开发了自己的代码的人,我理解你的沮丧:-) (2认同)