Errore ISO C ++ proibisce il confronto tra puntatore e intero

Errore ISO C ++ proibisce il confronto tra puntatore e intero
In C ++, vengono utilizzati singoli apostrofi per rappresentare i caratteri, non le stringhe. Utilizziamo simboli a doppi citazioni per incarnare il puntatore. Dopo aver compilato i programmi in C ++, otteniamo errori diversi. L'errore di confronto è uno di questi. A volte dopo aver eseguito il programma, acquisiamo "ISO C ++ proibisce il confronto tra puntatore e intero" o di volta in volta, otteniamo "ISO C ++ proibisce il confronto tra puntatore e intero [-fpermissive]". Quando riceviamo questi tipi di errori, dobbiamo verificare la condizione di confronto applicata al programma. Dobbiamo tenere presente questa cosa che la condizione di confronto è incompatibile con il tipo di dati distinto. Per risolvere C ++ vieta l'errore di confronto, dobbiamo semplicemente valutare la forma comparabile di variabili definite in condizioni.

In questo artefatto, stiamo lavorando su questi errori e vediamo come risolverli in C++.

Avere diversi tipi di dati di variabili durante il confronto:

Dopo aver utilizzato lo standard dello spazio dei nomi, dichiariamo la funzione in questa istanza. Quindi inizializziamo la variabile 'V' per valore e assegniamo il valore 1. Applichiamo la condizione if per confrontare il valore con la funzione. Se il valore è maggiore della funzione, ci sarà un incremento di 1 nel valore. La funzione deve restituire il valore. Ora iniziamo il corpo principale del codice. Dichiariamo la variabile "V".

#includere
Utilizzo dello spazio dei nomi std;
int f (int j, int k)
int v = 1;
if (v> f)
restituire (v+1);

restituzione v;

int main ()
int v = f (4,7);
restituzione 0;

Dopo la compilazione, otteniamo l'errore 'ISO C ++ proibisce il confronto tra puntatore e intero [-fpermissive]', quindi il programma non viene eseguito.

Quando applichiamo la condizione se (v> f), commettiamo un errore qui. Confrontiamo la funzione con il numero intero, quindi qui questo confronto è sbagliato. Confronta sempre quelle variabili che contengono un tipo di dati simile. Quando una valutazione è inaccurata, acquisiremo questo tipo di errore. Quindi proprio qui, dobbiamo valutare con alcuni valori integrali. Qui abbiamo eliminato la chiamata di funzione e la valutata con un valore intero. In questo modo, l'errore potrebbe essere risolto.

Tipo non valido 'Double (int)':

All'inizio del programma, comprendiamo la biblioteca . Quindi definiamo le dimensioni dell'elenco. Nel corpo principale, definiamo le variabili. Il tipo di dati dell'elenco è "doppio". Dichiariamo la funzione "get_avg" con tipo di dati doppio. Passiamo due parametri per la funzione. Successivamente, dichiariamo la variabile "somma" con il doppio tipo di dati. Facciamo domanda per loop e il valore viene incrementato per ottenere la somma.

#includere
#define size 15
int main (void)
doppia lista;
double get_avg (const double list [], int r);
int j;
doppia somma = 0;
int n [dimensione];
per (j = 0; jSum += elenco [j];

restituzione (somma);

Qui otteniamo anche lo stesso errore. Perché la funzione contiene sempre gli argomenti con lo stesso tipo di dati. E in questo codice, passiamo il parametro della funzione con diversi tipi di dati.

Usa l'istruzione if-else:

Questo programma include innanzitutto il file di intestazione per scopi di input e output. Successivamente, utilizziamo lo standard dello spazio dei nomi. Nel corpo principale del codice, dichiariamo la stringa "s". Il tipo di dati della stringa è 'char'. Passiamo il valore 5 come argomento alla stringa. Inoltre, applichiamo la condizione IF-ELSE; Se l'utente inserisce "XYZ", la funzione "Cout" visualizza "corretta" sullo schermo; Altrimenti, visualizza un messaggio "in corretto".

#includere
Utilizzo dello spazio dei nomi std;
int main ()
Char S [5];
cout << "Enter string";
CIN >> s;
if (s == 'xyz')

cout << "correct";
altro
cout << "In correct";

restituzione 0;

Quando eseguiamo il programma, acquisiamo l'errore: 'ISO C ++ proibisce il confronto tra puntatore e intero [-fpermissive]. If (s == 'xyz'), ecco 's' è un tipo di char* costante*. E questa è una serie di personaggi. Ma qui, "xyz" è deliberato come valore intero. Deve essere un valore di stringa insistente a causa del fatto che un singolo segno di preventivo è deliberato come valore integrale.

Riceviamo diversi tipi di errori dopo aver eseguito i programmi. Gli errori sono di errore di runtime di due tipi e errore del tempo del compilatore. Questo errore è un errore di runtime.

Come risolvere l'errore?

In seguito integrare il file di intestazione e utilizzare lo standard dello spazio dei nomi. Facciamo ulteriori codifiche nel corpo principale. La stringa è dichiarata. Utilizziamo 'cout' per stampare il messaggio 'immettere la stringa' sullo schermo, in modo che l'utente inserisca la stringa. Per verificare la condizione, utilizziamo l'istruzione IF-ELSE.

#includere
Utilizzo dello spazio dei nomi std;
int main ()
stringhe;
cout << "Enter the string: ";
CIN >> s;
if (s == "xyz")

cout << "correct";
altro
cout << "In correct";

restituzione 0;

Quindi, per fare un confronto, dobbiamo utilizzare le doppie virgolette "XYZ". E dichiaralo come una variabile di stringa. Ora possiamo relazionarci usando s == "xyz".

Poiché l'utente inserisce la stringa "XYZ", il programma stampa correttamente perché abbiamo definito la stessa stringa nel codice sopra. L'utente ha inserito una stringa e la stringa definita è la stessa, quindi otteniamo questo output.

Conclusione:

Questo articolo definisce prima l'errore ISO C ++ proibisce il confronto tra puntatore e intero. Abbiamo anche spiegato il motivo dietro questo errore. E il metodo per risolvere questo problema. Quando confrontiamo le variabili con, a differenza dei tipi di dati, acquisiamo questo tipo di errore. Per eliminare questo tipo di errore, dobbiamo utilizzare variabili con tipi di dati identici quando si confrontano due variabili.