Heim > Backend-Entwicklung > C++ > Hauptteil

So beheben Sie einen Vergleichsfehler zwischen Zeiger und Ganzzahl in C

Linda Hamilton
Freigeben: 2024-10-23 16:10:02
Original
266 Leute haben es durchsucht

How to Fix Comparison Error Between Pointer and Integer in C

Vergleichsfehler in C: Zeiger vs. Ganzzahl

Beim Versuch, eine einfache Funktion aus Bjarne Stroustrups C-Buch, dritte Auflage, Entwickler zu kompilieren Möglicherweise tritt beim Kompilieren ein Fehler auf:

error: ISO C++ forbids comparison between pointer and integer
Nach dem Login kopieren

Dieses Problem tritt auf, wenn ein Zeiger mit einer Ganzzahl 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>
Nach dem Login kopieren

Der Fehler erscheint in der if-Anweisung, in der die Antwort mit einem String-Literal („y“) verglichen wird. Da Antwort eine Zeichenvariable ist, muss sie mit einer Zeichenkonstante verglichen werden.

Lösung

Es gibt zwei Lösungen für dieses Problem:

  1. Verwenden Sie eine String-Variable:
    Deklarieren Sie die Antwort als String-Typ statt als Zeichen. Dadurch können Sie die Antwort korrekt mit einem String-Literal vergleichen:

    <code class="cpp">string answer;
    if (answer == "y") return true;</code>
    Nach dem Login kopieren
  2. Zeichenkonstante verwenden:
    Anstatt die Antwort mit einem String-Literal zu vergleichen, Verwenden Sie eine in einfache Anführungszeichen eingeschlossene Zeichenkonstante:

    <code class="cpp">if (answer == 'y') return true; // Note single quotes for character constant</code>
    Nach dem Login kopieren

Beide Methoden beheben den Fehler effektiv, indem sie sicherstellen, dass der Vergleich zwischen kompatiblen Typen erfolgt.

Das obige ist der detaillierte Inhalt vonSo beheben Sie einen Vergleichsfehler zwischen Zeiger und Ganzzahl in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!