首頁 >後端開發 >C++ >為什麼我收到「編譯錯誤:ISO C 禁止指標和整數之間的比較」?

為什麼我收到「編譯錯誤:ISO C 禁止指標和整數之間的比較」?

Barbara Streisand
Barbara Streisand原創
2024-10-30 08:20:02383瀏覽

Why am I Getting a

編譯錯誤:「ISO C 禁止指標與整數之間的比較」

當嘗試使用C 編譯函數時,您可能會編譯函數時,您可能會遇到「編譯錯誤:ISO C 禁止指標和整數之間的比較。」此錯誤是由於嘗試將指標值與整數進行比較而導致的。

問題

在提供的程式碼片段:

<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>

錯誤發生在以下行:

<code class="cpp">if (answer == "y") return true;</code>

這裡,變數answer 被宣告為字符,而字串文字「y」是字串。 ISO C 中禁止將 char 指標與字串文字進行比較,因為這可能會導致細微的錯誤。

有兩種方法可以解決此問題:

1。將答案轉換為字串:

<code class="cpp">string answer;</code>

此方法是首選,因為它符合現代 C 最佳實踐。

2.對字串文字使用單引號:

<code class="cpp">if (answer == 'y') ...</code>

單引號表示 char 常數,它與 char 變數答案相容。

以上是為什麼我收到「編譯錯誤:ISO C 禁止指標和整數之間的比較」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn