Maison > développement back-end > C++ > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-04 01:01:03
original
744 Les gens l'ont consulté

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!