編譯錯誤:「ISO C 禁止指標與整數之間的比較」
當嘗試使用C 編譯函數時,您可能會編譯函數時,您可能會遇到「編譯錯誤:ISO C 禁止指標和整數之間的比較。」此錯誤是由於嘗試將指標值與整數進行比較而導致的。
問題
在提供的程式碼片段:
<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>
錯誤發生在以下行:
<code class="cpp">if (answer == "y") return true;</code>這裡,變數answer 被宣告為字符,而字串文字「y」是字串。 ISO C 中禁止將 char 指標與字串文字進行比較,因為這可能會導致細微的錯誤。
解
有兩種方法可以解決此問題:1。將答案轉換為字串:
<code class="cpp">string answer;</code>此方法是首選,因為它符合現代 C 最佳實踐。
2.對字串文字使用單引號:
<code class="cpp">if (answer == 'y') ...</code>單引號表示 char 常數,它與 char 變數答案相容。
以上是為什麼我收到「編譯錯誤:ISO C 禁止指標和整數之間的比較」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!