"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como corrigir erro de comparação entre ponteiro e número inteiro em C++

Como corrigir erro de comparação entre ponteiro e número inteiro em C++

Publicado em 2024-11-18
Navegar:252

How to Fix Comparison Error Between Pointer and Integer in C

Erro de comparação em C: ponteiro vs. número inteiro

Ao tentar compilar uma função simples do livro C de Bjarne Stroustrup, terceira edição, desenvolvedores pode encontrar o erro de tempo de compilação:

error: ISO C   forbids comparison between pointer and integer

Esse problema surge ao comparar um ponteiro com um número inteiro. No código fornecido:

#include 
#include 
using namespace std;
bool accept()
{
    cout > answer;
    if (answer == "y") return true;
    return false;
}

O erro aparece na instrução if onde a resposta é comparada a uma string literal ("y"). Como a resposta é uma variável de caractere, ela deve ser comparada a uma constante de caractere.

Solução

Existem duas soluções para esse problema:

  1. Use uma variável de string:
    Declare a resposta como um tipo de string em vez de char. Isso permitirá que você compare a resposta com uma string literal corretamente:

    string answer;
    if (answer == "y") return true;
  2. Use Character Constant:
    Em vez de comparar a resposta a uma string literal, use uma constante de caractere entre aspas simples:

    if (answer == 'y') return true; // Note single quotes for character constant

Ambos os métodos resolvem efetivamente o erro, garantindo que a comparação seja entre tipos compatíveis.

Declaração de lançamento Este artigo foi reimpresso em: 1729663819 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3