コンパイラ エラー: C でのポインタと整数の比較の禁止
コンパイラの問題「ISO C ではポインタと整数の比較が禁止されています」がコンパイル中に発生します。 、ポインタと整数の間の不適切な比較に関連するコード エラーを強調表示します。解決策を詳しく調べるために、指定されたコードを調べてみましょう:
指定されたコードでは、答えが "y" に対してテストされている if ステートメント内でエラーが発生します:
<code class="cpp">if (answer == "y") ...</code>
ここ、答えは文字変数ですが、「y」は C スタイルの文字列リテラルです。文字変数を文字へのポインタと比較しようとすると (「y」はポインタに変換されるため)、コンパイラ エラーが発生します。
この問題に対処するには、次の 2 つの解決策が考えられます。
1.文字列変数を使用する:
推奨される解決策は、文字変数の代わりに回答に文字列変数を使用することです:
<code class="cpp">string answer;</code>
これはベスト プラクティスに沿っており、ポインタ整数を回避します。比較エラー。
2.文字定数を使用します:
または、文字列ではなく文字を表す一重引用符付きの文字定数を利用できます:
<code class="cpp">if (answer == 'y') ...</code>
どちらのソリューションも効果的にポインタを解決します。整数比較の禁止により、正しいコード実行が保証されます。
以上がC コードで「ISO C はポインタと整数の比較を禁止しています」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。