Compilerfehler: ISO C verbietet Zeiger-Ganzzahl-Vergleiche
Beim Experimentieren mit einer einfachen Funktion aus Bjarne Stroustrups C-Lehrbuch haben Entwickler tritt häufig der Kompilierungsfehler auf: „ISO C verbietet den Vergleich zwischen Zeiger und Ganzzahl.“ Dieser Fehler entsteht durch den Vergleich zwischen einem Zeiger und einer Ganzzahl.
Ein Beispiel dieses Problems tritt auf, wenn eine Zeicheneingabe mit der Zeichenfolge „y“ verglichen wird. Im bereitgestellten Code:
<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>
Der Fehler tritt auf, weil der Code die Antwort als Zeichen (char) definiert, während „y“ ein Zeichenfolgenliteral ist. Um dieses Problem zu lösen, haben Sie zwei Möglichkeiten:
Beide Lösungen beheben die Einschränkung des Compilers, indem sie sicherstellen, dass Sie einen Zeiger auf eine Ganzzahl mit einem Zeiger auf eine andere Ganzzahl oder einen Zeiger auf eine Zeichenfolge vergleichen.
Das obige ist der detaillierte Inhalt vonWarum verbietet C den Vergleich von Zeigern und ganzen Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!