18

我收到以下错误...

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

...尝试执行 if 语句时。我假设我不了解输入值是如何存储的,尽管我不确定是否可以将其转换为匹配类型?

要重现的示例代码是:

char userInput_Text[3];

if (userInput_Text[1] == "y") {
    // Do stuff.
}

我不确定是什么原因造成的。看起来一种类型是 char 而另一种是 const char 指针,尽管我不确定是什么,作为参考,当我不使用数组时也会发生此错误)。

提示/反馈将不胜感激。

4

1 回答 1

51

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

char userInput_Text[3];

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

以供参考:

  • "x"=const char *
  • 'x'=char
于 2013-01-27T03:11:23.490 回答