Comprendre les sorties mystérieuses des variables non initialisées
Les variables non initialisées peuvent conduire à des comportements bizarres dans votre programme, entraînant souvent une sortie inattendue lors de l'impression de leurs valeurs . Voyons pourquoi cela se produit et comment éviter de tels problèmes.
La nature des variables non initialisées
Dans les extraits de code fournis, les variables 'var' sont déclarées sans valeurs initiales. Cela signifie qu'ils contiennent des valeurs arbitraires qui n'ont pas été explicitement attribuées ou initialisées par le programme. Lorsque vous essayez d'imprimer ces variables non initialisées, le compilateur n'a aucun comportement spécifié pour elles.
Comportement non défini et valeurs inutiles
La lecture à partir d'une variable non initialisée déclenche un comportement non défini dans C , ce qui signifie que le compilateur et le matériel sont libres de faire ce qu'ils jugent bon. Cela peut avoir pour résultat que la variable contient n'importe quelle valeur aléatoire qui se trouve dans l'emplacement mémoire où elle est stockée. Ces valeurs peuvent apparaître sous la forme de nombres apparemment étranges ou absurdes, comme les exemples donnés dans la question.
Exemple avec la déclaration « switch »
Pour illustrer davantage la nature imprévisible de variables non initialisées, considérons le code suivant :
#include <iostream> const char* test() { bool b; // uninitialized switch (b) // undefined behavior! { case false: return "false"; case true: return "true"; default: return "impossible"; } } int main() { std::cout << test() << std::endl; }
Selon un raisonnement naïf, ce code ne devrait jamais s'imprimer "impossible" car un booléen ne peut être que vrai ou faux. Cependant, en raison d'un comportement non défini, le programme peut afficher "impossible" si la variable non initialisée 'b' contient une valeur qui n'est ni 0 ni 1.
Bonne pratique
Pour éviter les comportements imprévisibles et garantir la bonne exécution du programme, il est crucial d'initialiser les variables avec des valeurs appropriées chaque fois qu'elles sont déclarées. Cela élimine le risque de comportement indéfini et garantit que votre programme se comporte comme prévu.
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!