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是字元變量,因此必須將其與字元常數進行比較。
解
此問題有兩種解:
使用字串變數
<code class="cpp">string answer; if (answer == "y") return true;</code>
<code class="cpp">if (answer == 'y') return true; // Note single quotes for character constant</code>
以上是如何修復 C 中指標和整數之間的比較錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!