「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ でポインタと整数の間の比較エラーを修正する方法

C++ でポインタと整数の間の比較エラーを修正する方法

2024 年 11 月 18 日に公開
ブラウズ:650

How to Fix Comparison Error Between Pointer and Integer in C

C の比較エラー : ポインタと整数

Bjarne Stroustrup の C ブック、第 3 版の単純な関数をコンパイルしようとしたとき、開発者向けコンパイル時エラーが発生する可能性があります:

error: ISO C   forbids comparison between pointer and integer

この問題は、ポインターと整数を比較するときに発生します。提供されたコード:

#include 
#include 
using namespace std;
bool accept()
{
    cout > answer;
    if (answer == "y") return true;
    return false;
}

このエラーは、回答が文字列リテラル (「y」) と比較される if ステートメントで発生します。答えは文字変数であるため、文字定数と比較する必要があります。

解決策

この問題には 2 つの解決策があります:

  1. 文字列を使用する Variable:
    答えを char ではなく string 型として宣言します。これにより、答えを文字列リテラルと正しく比較できるようになります。

    string answer;
    if (answer == "y") return true;
  2. 文字定数を使用:
    答えを文字列リテラルと比較する代わりに、文字定数を使用します一重引用符で囲みます:

    if (answer == 'y') return true; // Note single quotes for character constant

どちらのメソッドも、比較が互換性のある型間で行われることを保証することで効果的にエラーを解決します。

リリースステートメント この記事は次の場所に転載されています: 1729663819 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3