Maison >développement back-end >C++ >Pourquoi C interdit-il de comparer des pointeurs et des entiers ?
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>
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 :
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!