编译错误:“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中文网其他相关文章!