Erreur du compilateur : interdiction de comparaison de pointeurs et d'entiers en C
Le problème du compilateur "ISO C interdit la comparaison entre un pointeur et un entier" survient lors de la compilation , mettant en évidence une erreur de code liée à une comparaison incorrecte entre un pointeur et un entier. Pour approfondir la résolution, examinons le code fourni :
Dans le code donné, l'erreur se produit dans l'instruction if où la réponse est testée par rapport à "y":
<code class="cpp">if (answer == "y") ...</code>
Ici , la réponse est une variable de caractère, alors que "y" est une chaîne littérale de style C. Tenter de comparer une variable de caractère à un pointeur vers un caractère (comme "y" se traduit par un pointeur) déclenche l'erreur du compilateur.
Vous avez deux solutions potentielles pour résoudre ce problème :
1. Utiliser une variable de chaîne :
La solution préférée consiste à utiliser une variable de chaîne pour la réponse au lieu d'une variable de caractère :
<code class="cpp">string answer;</code>
Cela est conforme aux meilleures pratiques et évite le pointeur-entier erreur de comparaison.
2. Utiliser une constante de caractère :
Vous pouvez également utiliser une constante de caractère avec des guillemets simples, qui représente un caractère plutôt qu'une chaîne :
<code class="cpp">if (answer == 'y') ...</code>
Les deux solutions résolvent efficacement le pointeur. interdiction de comparaison d'entiers, garantissant une exécution correcte du code.
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!