Vérification des valeurs des pointeurs : if (pointer) vs if (pointer != NULL)
Lorsque vous travaillez avec des pointeurs en C, il est crucial pour déterminer leur validité. Pouvez-vous simplement utiliser l'expression if (pointeur) pour tester si un pointeur n'est pas NULL ? Ou devez-vous écrire explicitement if (pointer != NULL) ?
Réponse :
Le standard C vous permet d'utiliser if (pointer) pour tester le pointeur validité. Les pointeurs non nuls sont implicitement convertis en vrai, tandis que le pointeur nul est converti en faux. Ce comportement est défini dans la section de la norme C 11 sur les conversions booléennes :
<code class="cpp">A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member type can be converted to a prvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true. A prvalue of type std::nullptr_t can be converted to a prvalue of type bool; the resulting value is false.</code>
Par conséquent, vous pouvez écrire en toute sécurité if (pointeur) pour vérifier si un pointeur n'est pas NULL. Cependant, pour des raisons de clarté et de cohérence, il est recommandé d'utiliser la construction explicite if (pointer != NULL) ou if (pointer) selon le cas.
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!