」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何修復 C++ 中指標與整數之間的比較錯誤

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

發佈於2024-11-18
瀏覽:977

How to Fix Comparison Error Between Pointer and Integer in C

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

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

error: ISO C   forbids comparison between pointer and integer

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

#include 
#include 
using namespace std;
bool accept()
{
    cout > answer;
    if (answer == "y") return true;
    return false;
}

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

解決方案

這個問題有兩個解決方案:

  1. 使用字串變數 :
    將答案聲明為字串類型而不是字元。這將允許您正確地將答案與字串文字進行比較:

    string answer;
    if (answer == "y") return true;
  2. 使用字元常數:
    不要將答案與字串文字進行比較,而是使用字元常數用單引號括起來:

    if (answer == 'y') return true; // Note single quotes for character constant

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

版本聲明 本文轉載於:1729663819如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST數組:表單提交後使用var_dump檢查$_POST 陣列的內容。...
    程式設計 發佈於2024-11-18
  • 為什麼從 std::string 函數傳回 C 字串文字有時似乎有效,但仍然是未定義的行為?
    為什麼從 std::string 函數傳回 C 字串文字有時似乎有效,但仍然是未定義的行為?
    從std::string 函數回傳C 字串文字並呼叫c_str()在C 中,從std::string 函數傳回C 字串文字是不明智的做法可能會導致不確定的行為。然而,一個常見的誤解是這段程式碼應該會失敗,儘管它在某些情況下似乎可以運作。 當「是我!!」傳遞給 myFunction() 時,C 字串文...
    程式設計 發佈於2024-11-18
  • 如何使用 array_diff 來決定一個陣列是否包含另一個陣列中的所有值?
    如何使用 array_diff 來決定一個陣列是否包含另一個陣列中的所有值?
    使用 array_diff 檢查陣列值包含使用 array_diff 檢查陣列值包含$all = array ( 0 =&gt; 307, 1 =&gt; 157, 2 =&gt; 234, 3 =&gt; 200, 4 =&a...
    程式設計 發佈於2024-11-18
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-11-18
  • 如何在 Go 中正確實作自訂類型的 Valuer 和 Scanner?
    如何在 Go 中正確實作自訂類型的 Valuer 和 Scanner?
    Golang 類型斷言:為自訂型別實作Valuer 和Scanner在Go 中使用自訂型別(例如基於字串的型別)時,可能需要實作Valuer 和Scanner 介面來與資料庫驅動程式互動。這使得自訂類型能夠與資料庫值進行序列化和反序列化。 在提供的程式碼中,嘗試實作 Role 型別及其關聯的 Val...
    程式設計 發佈於2024-11-18
  • 如何讓 MySQL 截斷資料而不是在插入時引發錯誤?
    如何讓 MySQL 截斷資料而不是在插入時引發錯誤?
    MySQL 插入行為:截斷與錯誤MySQL 插入行為:截斷與錯誤MySQL 在嘗試插入超出列長度限制的資料時表現出不同的行為:截斷或錯誤。在這種情況下,我們的目標是修改 MySQL 實例以截斷資料而不是引發錯誤。 解決方案:停用 STRICT_TRANS_TABLES 和 STRICT_ALL_TA...
    程式設計 發佈於2024-11-18
  • 如何阻止 Flexbox 中的 Flex 項目伸展?
    如何阻止 Flexbox 中的 Flex 項目伸展?
    防止 Flex 項目拉伸使用 Flexbox 佈局時,Flex 項目可以拉伸並填充其容器中的可用空間。但是,在某些情況下,您可能希望防止這種情況發生。 為什麼 Flex 專案可以伸展? 預設情況下,Flex 專案將沿主軸拉伸容器的形狀,通常是水平(行)或垂直(列)。這是因為 flex 屬性預設為 1...
    程式設計 發佈於2024-11-18
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-11-18
  • 如何在 Visual Studio 2012 中連接 MySQL 資料庫?
    如何在 Visual Studio 2012 中連接 MySQL 資料庫?
    在Visual Studio 2012 中連接MySQL 資料來源在Visual Studio 2012 中MySQL 資料來源與實體框架(EF) 的整合一直是一個主題的討論。然而,在 DataSource Dialog 中新增 MySQL 資料庫給開發人員帶來了挑戰。 事實證明,MySQL Con...
    程式設計 發佈於2024-11-18
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-11-18
  • Java中線程引用設定為Null時會產生垃圾嗎?
    Java中線程引用設定為Null時會產生垃圾嗎?
    Java 主題:垃圾收集與否? 在此 Java 程式碼片段中,建立了一個新線程,並使用 t.start( )。但是,啟動線程後,線程引用 t 被設定為 null,且 t = null。這就提出了一個問題:在沒有主動引用線程的情況下,線程是否會被垃圾收集。 Java 中的垃圾收集當垃圾收集器在 Jav...
    程式設計 發佈於2024-11-18
  • 為什麼我的 Python MySQL 插入不起作用?
    為什麼我的 Python MySQL 插入不起作用?
    Python MySQL 插入操作疑難解答在 Python 中,使用 MySQL API 與 MySQL 資料庫交互,插入記錄可能會遇到障礙。本文解決了這樣一個問題:儘管實現看似正確,但記錄卻無法插入。 提供的程式碼建立了與資料庫的連接,並嘗試將記錄插入「文件」表中。但是,插入操作失敗。要解決這個問...
    程式設計 發佈於2024-11-18
  • 為什麼 C++ 建構函式有兩個符號?
    為什麼 C++ 建構函式有兩個符號?
    C 建構子的雙重符號Itanium C ABI 指定建構函式的重整名稱包含有關其型別和參數的資訊。因此,在庫中觀察到的兩個建構函式條目源自於它們不同的建構子類型:完整物件建構子(C1):此建構子完全初始化對象,包括任何虛擬基類.基對象構造函數(C2): 此構造函數初始化對象本身以及資料成員和非虛擬基...
    程式設計 發佈於2024-11-18
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-18
  • WaitGroup.Wait() 回傳後檢查共享變數是否安全?
    WaitGroup.Wait() 回傳後檢查共享變數是否安全?
    WaitGroup.Wait() 和記憶體屏障在存取共享變數的多執行緒環境中,強制同步至關重要以防止出現意外結果。 Go 中的一種此類機制是「sync.WaitGroup」包,它有助於管理並發運行的 goroutine。 目前的問題圍繞著「WaitGroup.Wait()」和記憶體屏障之間的關係展開...
    程式設計 發佈於2024-11-18

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3