首頁 > 後端開發 > C++ > 為什麼 ISO C 禁止比較指標和整數,以及如何修復程式碼中的此錯誤?

為什麼 ISO C 禁止比較指標和整數,以及如何修復程式碼中的此錯誤?

Barbara Streisand
發布: 2024-10-29 14:05:29
原創
612 人瀏覽過

Why Does ISO C   Forbid Comparing Pointers and Integers, and How Can I Fix This Error in My Code?

ISO C 比較錯誤:指針和整數

在處理Bjarne Stroustrup 的C 書中的範例時,一些使用者遇到了編譯-時間錯誤表示ISO C 禁止指針和整數之間的比較。此問題是由於在accept()函數中涉及char變數和字串常數的比較而引起的。

原因:

出錯是因為ISO C禁止直接比較字元指標(例如char*)與整數(例如用雙引號括起來的字元的數值,例如“y”)。

解:

解決此錯誤的主要方法有兩種:

  1. 首選方法:使用🎜>

      首選方法:使用字串變數:
    <code class="cpp">#include <iostream>
    #include <string>
    using namespace std;
    bool accept()
    {
        cout << "Do you want to proceed (y or n)?\n";
        string answer;
        cin >> answer;
        if (answer == "y") return true;
        return false;
    }</code>
    登入後複製
    更改字串答案的類型。這允許與字串常數“y”直接比較,從而解決問題。
    • 替代方法:使用單引號:
    <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>
    登入後複製
    如果必須使用char 變量,請將字元常數括在單引號中以表示char 常數。

以上是為什麼 ISO C 禁止比較指標和整數,以及如何修復程式碼中的此錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板