Maison  >  Article  >  développement back-end  >  Est-il sûr de rechercher des pointeurs non nuls avec « if(pointer) » au lieu de « if(pointer != NULL) » ?

Est-il sûr de rechercher des pointeurs non nuls avec « if(pointer) » au lieu de « if(pointer != NULL) » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 01:01:03744parcourir

Is it Safe to Check for Non-Null Pointers with `if(pointer)` Instead of `if(pointer != NULL)`?

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!

Déclaration:
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