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是字元變量,因此必須將其與字元常數進行比較。
解決方案
這個問題有兩個解決方案:
使用字串變數 :
將答案聲明為字串類型而不是字元。這將允許您正確地將答案與字串文字進行比較:
string answer;
if (answer == "y") return true;
使用字元常數:
不要將答案與字串文字進行比較,而是使用字元常數用單引號括起來:
if (answer == 'y') return true; // Note single quotes for character constant
這兩種方法都透過確保比較是在相容類型之間有效地解決了錯誤。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3