¿Se me permite usar el NULL
puntero como reemplazo del valor de 0
?
¿O hay algo malo en hacer eso?
Como por ejemplo:
int i = NULL;
como reemplazo de:
int i = 0;
Como experimento compilé el siguiente código:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Salida:
0
De hecho, me da esta advertencia, que es completamente correcta por sí sola:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
pero el resultado sigue siendo equivalente.
- ¿Estoy cruzando con "Comportamiento indefinido" con esto?
- ¿Está permitido utilizar
NULL
de esta manera? - ¿Hay algo de malo en usar
NULL
como valor numérico en expresiones aritméticas? - ¿Y cuál es el resultado y el comportamiento en C ++ para este caso?
He leído las respuestas de ¿Cuál es la diferencia entre NULL, '\ 0' y 0 sobre cuál es la diferencia entre NULL
, \0
y 0
es, pero no obtuve la información concisa de allí, si es bastante permisible y también correcto usarlo NULL
como valor para operar en asignaciones y otras operaciones aritméticas.