Vérification des pointeurs non nuls : if(pointer) vs if(pointer != NULL)
Question :
Est-il acceptable de vérifier le statut non nul d'un pointeur en utilisant if(pointer) au lieu du conventionnel if(pointer != NULL) ?
Réponse :
Oui, cela est permis. L'utilisation de if(pointer) est sûre car le pointeur nul est implicitement converti en valeur booléenne false, tandis que les pointeurs non nuls sont convertis en vrai. Ce comportement est défini dans la norme C 11 dans la section sur les conversions booléennes :
"Une prvalue arithmétique, une énumération sans portée, un pointeur ou un pointeur vers un type de membre peut être convertie en une prvalue de type bool. Un zéro value, valeur de pointeur nulle ou valeur de pointeur de membre null est convertie en false ; toute autre valeur est convertie en true. Une prvalue de type std::nullptr_t peut être convertie en une prvalue de type bool. 🎜>
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!