Maison > développement back-end > C++ > Pourquoi est-ce que je reçois une « Erreur de compilation : ISO C interdit la comparaison entre un pointeur et un entier » ?

Pourquoi est-ce que je reçois une « Erreur de compilation : ISO C interdit la comparaison entre un pointeur et un entier » ?

Barbara Streisand
Libérer: 2024-10-30 08:20:02
original
383 Les gens l'ont consulté

Why am I Getting a

Erreur de compilation : "ISO C interdit la comparaison entre un pointeur et un entier"

Lorsque vous essayez de compiler une fonction en C, vous pouvez rencontrer un "Erreur de compilation : ISO C interdit la comparaison entre un pointeur et un entier." Cette erreur résulte d'une tentative de comparaison d'une valeur de pointeur avec un entier.

Le problème

Dans l'extrait de code fourni :

<code class="cpp">#include <iostream>
#include <string>
using namespace std;

bool accept() {
    cout << "Do you want to proceed (y or n)?\n";
    char answer;
    cin >> answer;
    if (answer == "y") return true;
    return false;
}</code>
Copier après la connexion

L'erreur se produit sur la ligne :

<code class="cpp">if (answer == "y") return true;</code>
Copier après la connexion

Ici, la variable réponse est déclarée comme un caractère, tandis que la chaîne littérale "y" est une chaîne. Comparer un pointeur char à une chaîne littérale est interdit en ISO C , car cela peut conduire à des erreurs subtiles.

Solutions

Il existe deux façons de résoudre ce problème :

1. Convertir la réponse en chaîne :

<code class="cpp">string answer;</code>
Copier après la connexion

Cette approche est préférée car elle s'aligne sur les meilleures pratiques C modernes.

2. Utilisez des guillemets simples pour la chaîne littérale :

<code class="cpp">if (answer == 'y') ...</code>
Copier après la connexion

Les guillemets simples désignent une constante char, qui est compatible avec la réponse de la variable char.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal