首页  >  文章  >  后端开发  >  为什么我收到“编译错误:ISO C 禁止指针和整数之间的比较”?

为什么我收到“编译错误:ISO C 禁止指针和整数之间的比较”?

Barbara Streisand
Barbara Streisand原创
2024-10-30 08:20:02295浏览

Why am I Getting a

编译错误:“ISO C 禁止指针与整数之间的比较”

当尝试用 C 编译函数时,您可能会遇到“编译错误:ISO C 禁止指针和整数之间的比较。”此错误是由于尝试将指针值与整数进行比较而导致的。

问题

在提供的代码片段中:

<code class="cpp">#include <iostream>
#include <string>
using namespace std;

bool accept() {
    cout << "Do you want to proceed (y or n)?\n";
    char answer;
    cin >> answer;
    if (answer == "y") return true;
    return false;
}</code>

错误发生在以下行:

<code class="cpp">if (answer == "y") return true;</code>

这里,变量answer 被声明为字符,而字符串文字“y”是字符串。 ISO C 中禁止将 char 指针与字符串文字进行比较,因为这可能会导致细微的错误。

解决方案

有两种方法可以解决此问题:

1。将答案转换为字符串:

<code class="cpp">string answer;</code>

此方法是首选,因为它符合现代 C 最佳实践。

2.对字符串文字使用单引号:

<code class="cpp">if (answer == 'y') ...</code>

单引号表示 char 常量,它与 char 变量答案兼容。

以上是为什么我收到“编译错误:ISO C 禁止指针和整数之间的比较”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn