Compilerfehler: Zeiger- und Ganzzahlvergleichsverbot in C
Das Compilerproblem „ISO C verbietet den Vergleich zwischen Zeiger und Ganzzahl“ tritt während der Kompilierung auf , was auf einen Codefehler im Zusammenhang mit einem falschen Vergleich zwischen einem Zeiger und einer Ganzzahl hinweist. Um tiefer in die Lösung einzutauchen, untersuchen wir den bereitgestellten Code:
Im angegebenen Code tritt der Fehler innerhalb der if-Anweisung auf, in der die Antwort gegen „y“ getestet wird:
<code class="cpp">if (answer == "y") ...</code>
Hier , Antwort ist eine Zeichenvariable, während „y“ ein Zeichenfolgenliteral im C-Stil ist. Der Versuch, eine Zeichenvariable mit einem Zeiger auf ein Zeichen zu vergleichen (da „y“ in einen Zeiger übersetzt wird), löst einen Compilerfehler aus.
Sie haben zwei mögliche Lösungen, um dieses Problem zu beheben:
1. Verwenden Sie eine Zeichenfolgenvariable:
Die bevorzugte Lösung besteht darin, eine Zeichenfolgenvariable als Antwort anstelle einer Zeichenvariablen zu verwenden:
<code class="cpp">string answer;</code>
Dies entspricht den Best Practices und vermeidet die Zeiger-Ganzzahl Vergleichsfehler.
2. Zeichenkonstante verwenden:
Alternativ können Sie eine Zeichenkonstante mit einfachen Anführungszeichen verwenden, die ein Zeichen anstelle einer Zeichenfolge darstellt:
<code class="cpp">if (answer == 'y') ...</code>
Beide Lösungen lösen den Zeiger effektiv auf. Verbot des Ganzzahlvergleichs, um eine korrekte Codeausführung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum löst mein C-Code „ISO C verbietet den Vergleich zwischen Zeiger und Ganzzahl' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!