Heim >Backend-Entwicklung >C++ >Warum löst mein C-Code „ISO C verbietet den Vergleich zwischen Zeiger und Ganzzahl' aus?

Warum löst mein C-Code „ISO C verbietet den Vergleich zwischen Zeiger und Ganzzahl' aus?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 11:20:02641Durchsuche

 Why Does My C   Code Throw

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn