Fehler ISO C ++ verbietet den Vergleich zwischen Zeiger und Ganzzahl

Fehler ISO C ++ verbietet den Vergleich zwischen Zeiger und Ganzzahl
In C ++ werden einzelne Apostrophes verwendet, um Zeichen zu repräsentieren, und keine Zeichenfolgen. Wir verwenden doppelte Zitate Symbole, um den Zeiger zu verkörpern. Nachdem wir die Programme in C ++ zusammengestellt haben, erhalten wir unterschiedliche Fehler. Vergleichsfehler ist einer von ihnen. Manchmal erwerben wir nach dem Ausführen des Programms „ISO C ++ verboten den Vergleich zwischen Zeiger und Ganzzahl“ oder von Zeit zu Zeit erhalten wir „ISO C ++ verboten den Vergleich zwischen Zeiger und Ganzzahl [-Fpermissive]“ “. Wenn wir diese Art von Fehlern erhalten, müssen wir die auf das Programm angewendete Vergleichsbedingung überprüfen. Wir müssen dieses Ding berücksichtigen, dass die Vergleichsbedingung mit dem unterschiedlichen Datentyp nicht kompatibel ist. Um C ++ zu lösen, verbietet der Vergleichsfehler einfach die vergleichbare Form definierter Variablen unter Bedingungen.

In diesem Artefakt arbeiten wir an diesen Fehlern und sehen, wie man sie in C behebt++.

Mit unterschiedlichen Datentypen von Variablen während des Vergleichs:

Nachdem wir den Namespace -Standard verwendet haben, deklarieren wir die Funktion in dieser Instanz. Dann initialisieren wir die Variable 'v' für den Wert und weisen den Wert 1 zu. Wir wenden die IF -Bedingung an, um den Wert mit der Funktion zu vergleichen. Wenn der Wert größer als die Funktion ist, gibt es im Wert eine Erhöhung von 1 um 1. Die Funktion muss den Wert zurückgeben. Jetzt beginnen wir den Hauptteil des Code. Wir deklarieren die Variable 'v'.

#enthalten
Verwenden von Namespace STD;
int f (int j, int k)
int v = 1;
if (v> f)
return (v+1);

Rückkehr v;

int main ()
int v = f (4,7);
Rückkehr 0;

Nach dem Kompilieren erhalten wir den Fehler 'ISO C ++ verboten den Vergleich zwischen Zeiger und Ganzzahl [-Fermisssiv]', sodass das Programm nicht ausgeführt wird.

Wenn wir den Zustand anwenden, wenn (v> f), machen wir hier einen Fehler. Wir vergleichen die Funktion mit Ganzzahl. Hier ist dieser Vergleich falsch. Vergleichen Sie immer die Variablen, die einen ähnlichen Datentyp enthalten. Wenn eine Bewertung ungenau ist, werden wir diese Art von Fehler erfassen. Daher müssen wir hier mit einigen integralen Werten bewerten. Hier haben wir den Funktionsaufruf beseitigt und ihn mit einem Ganzzahlwert bewertet. Auf diese Weise kann der Fehler behoben werden.

Ungültiger Typ 'Double (int)':

Zu Beginn des Programms umfassen wir die Bibliothek . Dann definieren wir die Größe der Liste. Im Hauptkörper definieren wir die Variablen. Der Listendatentyp ist "doppelt". Wir deklarieren die Funktion 'get_avg' mit Datentyp -Doppel. Wir übergeben zwei Parameter für die Funktion. Als nächstes deklarieren wir die "Summe" -Variable mit dem Doppel -Datentyp. Wir beantragen eine Schleife und der Wert wird erhöht, um die Summe zu erhalten.

#enthalten
#define Größe 15
int main (void)
Doppelliste;
double get_avg (const double list [], int r);
int j;
doppelte Summe = 0;
int n [Größe];
für (j = 0; Jsum += list [j];

return (sum);

Hier bekommen wir auch den gleichen Fehler. Da die Funktion immer die Argumente mit demselben Datentyp enthält. In diesem Code übergeben wir den Parameter der Funktion mit unterschiedlichen Datentypen.

Verwenden Sie die IF-ELSE-Anweisung:

Dieses Programm enthält zunächst die Header -Datei für Eingabe- und Ausgabezwecke. Als nächstes verwenden wir den Namespace -Standard. Im Hauptteil des Codes deklarieren wir die Zeichenfolge 's' '. Der Datentyp der Zeichenfolge ist 'char'. Wir übergeben Wert 5 als Argument an die Zeichenfolge. Darüber hinaus wenden wir den IF-ELSE-Zustand an; Wenn der Benutzer "xyz" eingibt, zeigt die Funktion "Cout" auf dem Bildschirm "korrekt" angezeigt. Andernfalls wird eine "in richtige" Nachricht angezeigt.

#enthalten
Verwenden von Namespace STD;
int main ()
Char S [5];
Cout << "Enter string";
Cin >> s;
if (s == 'xyz')

Cout << "correct";
anders
Cout << "In correct";

Rückkehr 0;

Wenn wir das Programm ausführen, erwerben wir den Fehler: 'ISO C ++ verbietet den Vergleich zwischen Zeiger und Ganzzahl [-Fpermissive]. If (s == 'xyz'), hier ist 's' konstant char* type. Und das ist eine Reihe von Charakteren. Aber hier ist 'xyz' als ganzzahliger Wert absichtlich. Es muss ein beharrlicher String -Wert sein, da ein einzelner Anführungszeichen als integraler Wert berücksichtigt wird.

Nach dem Ausführen der Programme erhalten wir verschiedene Arten von Fehlern. Die Fehler sind von zwei Arten für Laufzeitfehler und Compiler-Zeitfehler. Dieser Fehler ist ein Laufzeitfehler.

So lösen Sie den Fehler?

Im Folgenden integrieren Sie die Header -Datei und verwenden Sie den Namespace -Standard. Wir kodieren weiter im Hauptkörper. Die Zeichenfolge wird deklariert. Wir verwenden 'Cout', um die Nachricht zu drucken. 'Geben Sie die Zeichenfolge auf dem Bildschirm ein, sodass der Benutzer die Zeichenfolge eingibt. Um den Zustand zu überprüfen, verwenden wir die IF-ELSE-Anweisung.

#enthalten
Verwenden von Namespace STD;
int main ()
String S;
Cout << "Enter the string: ";
Cin >> s;
if (s == "xyz")

Cout << "correct";
anders
Cout << "In correct";

Rückkehr 0;

Daher müssen wir zum Vergleich zwei Anführungszeichen „XYZ“ verwenden,. Und geben Sie es als eine Variable der String an. Jetzt können wir uns mit s == "xyz" beziehen.

Da der Benutzer die Zeichenfolge "xyz" eingibt, druckt das Programm korrekt aus, da wir dieselbe Zeichenfolge im obigen Code definiert haben. Der Benutzer hat eine Zeichenfolge eingegeben, und die definierte Zeichenfolge ist gleich, sodass wir diese Ausgabe erhalten.

Abschluss:

Dieser Artikel definiert zuerst den Fehler, den ISO C ++ unterbietet, den Vergleich zwischen Zeiger und ganzzahliger Vergleich. Wir haben auch den Grund für diesen Fehler erklärt. Und die Methode zur Behebung dieses Problems. Wenn wir die Variablen mit Datentypen vergleichen, erwerben wir diese Art von Fehler. Um diesen Fehlertyp zu beseitigen, müssen wir Variablen mit identischen Datentypen verwenden, wenn Sie zwei Variablen vergleichen.