首页 > 后端开发 > C++ > 正文

为什么 C 禁止比较指针和整数?

Linda Hamilton
发布: 2024-10-28 08:15:02
原创
834 人浏览过

Why Does C   Forbid Comparing Pointers and Integers?

编译器错误:ISO C 禁止指针整数比较

在尝试 Bjarne Stroustrup 的 C 教科书中的一个简单函数时,开发人员经常遇到编译错误:“ISO C 禁止指针与整数之间的比较”。此错误源于指针和整数之间的比较。

将字符输入与字符串“y”进行比较时会出现此问题的一个实例。在提供的代码中:

<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>
登录后复制

发生错误是因为代码将答案定义为字符(char),而“y”是字符串文字。要解决此问题,您有两个选择:

  1. 将字符串文字转换为字符: 使用answer == 'y' 将字符输入与字符 'y' 进行比较.
  2. 使用字符串代替字符:将答案声明为字符串(字符串answer;),然后将其与字符串“y”进行比较。

这两种解决方案都通过确保将指向整数的指针与指向另一个整数的指针或指向字符串的指针进行比较来解决编译器的限制。

以上是为什么 C 禁止比较指针和整数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!