Pointeurs en C : NULL vs. 0
Dans les premiers stades de C, l'utilisation de NULL comme pointeur nul était limitée à vider les pointeurs, ce qui le rend moins pratique. En conséquence, les programmeurs ont adopté la convention d'utiliser 0 (zéro) pour représenter les pointeurs nuls.
Malgré l'introduction de NULL en tant que représentation nommée de 0, le débat sur l'utilisation persiste. Certains programmeurs plaident pour 0, citant la possibilité de tester des pointeurs comme valeurs de vérité à l'aide d'opérateurs logiques (par exemple, if (p && !q) do_something()). Ils soutiennent que l'utilisation de NULL nécessiterait des comparaisons explicites avec NULL ou s'appuierait sur l'hypothèse que NULL est égal à zéro.
D'autres préconisent NULL, faisant écho au point de vue de Bjarne Stroustrup selon lequel il s'agit simplement d'une différence esthétique puisque NULL est défini comme 0. en C. Stroustrup souligne également le risque de confusion lorsque NULL est traité par erreur comme distinct de 0 ou d'un nombre non entier.
Bien que l'une ou l'autre approche puisse être débattue, Stroustrup recommande de ne pas se soucier excessivement de détails mineurs. À l'ère du RAII et des exceptions, les pointeurs nuls sont moins fréquemment utilisés, mais leur nécessité occasionnelle demeure.
Pour ceux qui préfèrent une représentation nommée, C 11 a introduit nullptr comme mot-clé désigné pour les pointeurs nuls. Cette recommandation sert à différencier les pointeurs nuls des autres valeurs entières et élimine tout risque de confusion. En fin de compte, le choix entre NULL et 0 ou nullptr dépend de vos préférences personnelles, car il n'y a pas de supériorité objective entre les deux approches.
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!