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

时间:2013-01-27 03:10:08

标签: c++ c arrays types

我收到以下错误...

  

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

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

要重现的示例代码是:

char userInput_Text[3];

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

我不确定导致这种情况的原因。看起来一个类型是char而另一个是const char指针,虽然我不确定是什么,但是当我不使用数组时也会出现这个错误。

非常感谢提示/反馈。

1 个答案:

答案 0 :(得分:28)

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

char userInput_Text[3];

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

供参考:

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