首頁 > 後端開發 > C++ > 主體

為什麼 C 禁止比較指標和整數?

Linda Hamilton
發布: 2024-10-28 08:15:02
原創
834 人瀏覽過

Why Does C   Forbid Comparing Pointers and Integers?

編譯器錯誤:ISO C 禁止指標整數比較

在嘗試Bjarne Stroustrup 的C 教科書中的一個簡單函數時,開發人員常遇到編譯錯誤:「ISO C 禁止指標與整數之間的比較」。此錯誤源自於指標和整數之間的比較。

將字元輸入與字串「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),而「y」是字串文字。要解決此問題,您有兩個選擇:

  1. 將字串文字轉換為字元: 使用answer == 'y' 將字元輸入與字元'y' 進行比較.
  2. 使用字串代替字元:將答案宣告為字串(字串answer;),然後將其與字串「y」進行比較。

這兩個解決方案都透過確保將指向整數的指標與指向另一個整數的指標或指向字串的指標進行比較來解決編譯器的限制。

以上是為什麼 C 禁止比較指標和整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!