Maison > développement back-end > C++ > Pourquoi C interdit-il de comparer des pointeurs et des entiers ?

Pourquoi C interdit-il de comparer des pointeurs et des entiers ?

Linda Hamilton
Libérer: 2024-10-28 08:15:02
original
907 Les gens l'ont consulté

Why Does C   Forbid Comparing Pointers and Integers?

Erreur du compilateur : interdiction par ISO C des comparaisons pointeur-entier

Lors de l'expérimentation d'une fonction simple du manuel C de Bjarne Stroustrup, les développeurs rencontrez fréquemment l'erreur de compilation : "ISO C interdit la comparaison entre un pointeur et un entier." Cette erreur provient de la comparaison entre un pointeur et un entier.

Un exemple de ce problème survient lors de la comparaison d'une entrée de caractère à la chaîne "y". Dans le 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 car le code définit la réponse comme un caractère (char), tandis que "y" est une chaîne littérale. Pour résoudre ce problème, vous avez deux options :

  1. Convertir la chaîne littérale en caractère : Utilisez la réponse == 'y' pour comparer le caractère saisi au caractère 'y' .
  2. Utilisez une chaîne au lieu d'un caractère : Déclarez la réponse sous forme de chaîne (stringanswer;) puis comparez-la à la chaîne "y".

Les deux solutions répondent à la restriction du compilateur en garantissant que vous comparez un pointeur vers un entier avec un pointeur vers un autre entier ou un pointeur vers une chaîne.

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