Suis-je autorisé à utiliser le NULL
pointeur en remplacement de la valeur de 0
?
Ou y a-t-il quelque chose de mal à faire cela?
Comme par exemple:
int i = NULL;
en remplacement de:
int i = 0;
Comme expérience, j'ai compilé le code suivant:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Production:
0
En effet, il me donne cet avertissement, qui est tout à fait correct en soi:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
mais le résultat est toujours équivalent.
- Suis-je en train de passer à "Comportement indéfini" avec ça?
- Est-il permis d'utiliser
NULL
de cette manière? - Y a-t-il quelque chose de mal à utiliser
NULL
comme valeur numérique dans les expressions arithmétiques? - Et quel est le résultat et le comportement en C ++ dans ce cas?
J'ai lu les réponses de Quelle est la différence entre NULL, '\ 0' et 0 à propos de la différence entre NULL
, \0
et 0
est, mais je n'ai pas obtenu les informations concises à partir de là, si c'est tout à fait autorisé et aussi juste d'utiliser NULL
comme valeur à utiliser dans les affectations et autres opérations arithmétiques.