"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo corregir el error de comparación entre puntero y entero en C++

Cómo corregir el error de comparación entre puntero y entero en C++

Publicado el 2024-11-18
Navegar:551

How to Fix Comparison Error Between Pointer and Integer in C

Error de comparación en C: puntero frente a entero

Al intentar compilar una función simple del libro C de Bjarne Stroustrup, tercera edición, desarrolladores puede encontrar el error de tiempo de compilación:

error: ISO C   forbids comparison between pointer and integer

Este problema surge al comparar un puntero con un número entero. En el código proporcionado:

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

El error aparece en la declaración if donde la respuesta se compara con una cadena literal ("y"). Dado que la respuesta es una variable de carácter, se debe comparar con una constante de carácter.

Solución

Hay dos soluciones para este problema:

  1. Utilice una variable de cadena:
    Declare la respuesta como un tipo de cadena en lugar de char. Esto le permitirá comparar la respuesta con un literal de cadena correctamente:

    string answer;
    if (answer == "y") return true;
  2. Usar carácter constante:
    En lugar de comparar la respuesta con una cadena literal, use un carácter constante entre comillas simples:

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

Ambos métodos resuelven eficazmente el error al garantizar que la comparación se realice entre tipos compatibles.

Declaración de liberación Este artículo se reimprime en: 1729663819 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3