ホームページ > バックエンド開発 > C++ > C コードで「ISO C はポインタと整数の比較を禁止しています」がスローされるのはなぜですか?

C コードで「ISO C はポインタと整数の比較を禁止しています」がスローされるのはなぜですか?

Barbara Streisand
リリース: 2024-10-29 11:20:02
オリジナル
646 人が閲覧しました

 Why Does My C   Code Throw

コンパイラ エラー: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート