首頁  >  文章  >  後端開發  >  如何修復 C 中指標和整數之間的比較錯誤

如何修復 C 中指標和整數之間的比較錯誤

Linda Hamilton
Linda Hamilton原創
2024-10-23 16:10:02267瀏覽

How to Fix Comparison Error Between Pointer and Integer in C

C 中的比較錯誤:指針與整數

當嘗試編譯Bjarne Stroustrup 的C 書籍第三版中的簡單函數時,開發人員可能會遇到編譯時錯誤:

error: ISO C++ forbids comparison between pointer and integer

將指標與整數進行比較時會出現此問題。在提供的程式碼中:

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

錯誤出現在 if 語句中,其中答案與字串文字(“y”)進行比較。由於answer是字元變量,因此必須將其與字元常數進行比較。

此問題有兩種解:

  1. 使用字串變數

    <code class="cpp">string answer;
    if (answer == "y") return true;</code>
    使用字串變數
  2. :
  3. 將答案宣告為字串類型而不是字元。這將允許您正確地將答案與字串文字進行比較:


    <code class="cpp">if (answer == 'y') return true; // Note single quotes for character constant</code>
    使用字元常數
  4. :
而不是將答案與字串文字進行比較,使用用單引號括起來的字元常數:

兩種方法都透過確保比較是在相容類型之間有效地解決了錯誤。

以上是如何修復 C 中指標和整數之間的比較錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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