ISO C 比较错误:指针和整数
在处理 Bjarne Stroustrup 的 C 书中的示例时,一些用户遇到了编译 -时间错误表明 ISO C 禁止指针和整数之间的比较。此问题是由于在accept()函数中涉及char变量和字符串常量的比较而引起的。
原因:
发生错误是因为ISO C禁止直接比较字符指针(例如 char*)与整数(例如用双引号括起来的字符的数值,例如“y”)。
解决方案:
解决此错误的主要方法有两种:
首选方法:使用字符串变量:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; string answer; cin >> answer; if (answer == "y") return true; return false; }</code>
替代方法:使用单引号:
<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>
以上是为什么 ISO C 禁止比较指针和整数,以及如何修复代码中的此错误?的详细内容。更多信息请关注PHP中文网其他相关文章!