Erro iso c ++ proíbe a comparação entre ponteiro e número inteiro

Erro iso c ++ proíbe a comparação entre ponteiro e número inteiro
Em C ++, apóstrofos únicos são usados ​​para representar caracteres, não strings. Utilizamos símbolos de citações duplas para simbolizar o ponteiro. Depois de compilar os programas em C ++, obtemos erros diferentes. O erro de comparação é um deles. Às vezes, depois de executar o programa, adquirimos "ISO C ++ proíbe a comparação entre ponteiro e número inteiro" ou de tempos em tempos, obtemos "ISO C ++ proíbe a comparação entre ponteiro e número inteiro [-fpermissive]". Quando obtemos esses tipos de erros, precisamos verificar a condição de comparação aplicada ao programa. Devemos ter isso em mente que a condição de comparação é incompatível com o tipo de dados distinto. Para resolver C ++ proíbe o erro de comparação, simplesmente precisamos avaliar a forma comparável de variáveis ​​definidas em condições.

Neste artefato, estamos trabalhando nesses erros e ver como resolvê -los em c++.

Tendo diferentes tipos de dados de variáveis ​​durante a comparação:

Depois de usar o namespace padrão, declaramos a função nesta instância. Em seguida, inicializamos a variável 'V' para o valor e atribuímos o valor 1. Aplicamos a condição if para comparar o valor com a função. Se o valor for maior que a função, haverá um incremento em 1 no valor. A função tem que retornar o valor. Agora começamos o corpo principal do código. Declaramos a variável 'V'.

#incluir
usando namespace std;
int f (int j, int k)
int v = 1;
if (v> f)
retornar (v+1);

retornar v;

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

Após a compilação, obtemos o erro 'ISO C ++ proíbe a comparação entre ponteiro e número inteiro [-fpermissive]', então o programa não é executado.

Quando aplicamos a condição se (v> f), cometemos um erro aqui. Comparamos a função com o número inteiro, então aqui esta comparação está errada. Sempre compare aquelas variáveis ​​que contêm um tipo de dados semelhante. Quando uma avaliação é imprecisa, adquiriremos esse tipo de erro. Portanto, aqui, temos que avaliar com alguns valores integrais. Aqui eliminamos a chamada de função e a avaliamos com um valor inteiro. Ao fazer isso, o erro pode ser resolvido.

Tipo inválido 'duplo (int)':

No início do programa, englobamos a biblioteca . Então definimos o tamanho da lista. No corpo principal, definimos as variáveis. O tipo de dados da lista é 'duplo'. Declaramos a função 'get_avg' com o tipo de dados duplo. Passamos dois parâmetros para a função. Em seguida, declaramos a variável 'soma' com o tipo de dados duplo. Solicitamos loop e o valor é incrementado para obter a soma.

#incluir
#Define Tamanho 15
int main (void)
lista dupla;
duplo get_avg (lista dupla const [], int r);
int j;
soma dupla = 0;
int n [tamanho];
para (j = 0; jsoma += lista [j];

retornar (soma);

Aqui também recebemos o mesmo erro. Porque a função sempre contém os argumentos com o mesmo tipo de dados. E neste código, passamos o parâmetro da função com diferentes tipos de dados.

Use a instrução if-else:

Este programa inclui primeiro o arquivo de cabeçalho para fins de entrada e saída. Em seguida, usamos o namespace padrão. No corpo principal do código, declaramos a string 's'. O tipo de dados da string é 'char'. Passamos o valor 5 como um argumento para a string. Além disso, aplicamos a condição if-else; Se o usuário inserir 'xyz', a função 'cout' será exibida 'correta' na tela; Caso contrário, ele exibe uma mensagem 'na correta'.

#incluir
usando namespace std;
int main ()
char s [5];
cout << "Enter string";
CIN >> s;
if (s == 'xyz')

cout << "correct";
outro
cout << "In correct";

retornar 0;

Quando executamos o programa, adquirimos o erro: 'ISO C ++ proíbe a comparação entre ponteiro e número inteiro [-fpermissive]. If (s == 'xyz'), aqui 's' é constante char* tipo. E isso é uma variedade de personagens. Mas aqui, 'xyz' é deliberado como um valor inteiro. Deve ser um valor insistente da string devido ao fato de que uma única cotação é deliberada como um valor integral.

Temos diferentes tipos de erros depois de executar os programas. Os erros são de dois tipos de erro de tempo de execução e erro de tempo do compilador. Este erro é um erro de tempo de execução.

Como resolver o erro?

A seguir, integrando o arquivo de cabeçalho e usando o namespace padrão. Fazemos mais codificação no corpo principal. A string é declarada. Usamos 'cout' para imprimir a mensagem 'Enter a string' na tela, para que o usuário digite a string. Para verificar a condição, usamos a declaração if-else.

#incluir
usando namespace std;
int main ()
cordas;
cout << "Enter the string: ";
CIN >> s;
if (s == "xyz")

cout << "correct";
outro
cout << "In correct";

retornar 0;

Portanto, para comparação, temos que utilizar aspas duplas "xyz". E indique -o como uma variável de string. Agora podemos nos relacionar usando S == “XYZ”.

À medida que o usuário insere a sequência 'xyz', o programa imprime corretamente porque definimos a mesma string no código acima. O usuário inseriu uma string e a string definida é a mesma, então obtemos esta saída.

Conclusão:

Este artigo define primeiro o erro ISO C ++ proíbe a comparação entre ponteiro e número inteiro. Também explicamos o motivo por trás deste erro. E o método para resolver este problema. Quando comparamos as variáveis ​​com, diferentemente dos tipos de dados, adquirimos esse tipo de erro. Para eliminar esse tipo de erro, precisamos utilizar variáveis ​​com tipos de dados idênticos ao comparar duas variáveis.