Posso usar o NULL
ponteiro como substituto do valor de 0
?
Ou há algo de errado nisso?
Como por exemplo:
int i = NULL;
como substituto para:
int i = 0;
Como experimento, compilei o seguinte código:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Resultado:
0
De fato, ele me dá esse aviso, que é completamente correto por si só:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
mas o resultado ainda é equivalente.
- Estou entrando no "comportamento indefinido" com isso?
- É permitido utilizar
NULL
dessa maneira? - Há algo de errado em usar
NULL
como valor numérico em expressões aritméticas? - E qual é o resultado e o comportamento em C ++ para este caso?
Eu li as respostas de Qual é a diferença entre NULL, '\ 0' e 0 sobre qual é a diferença entre NULL
, \0
e 0
é, mas não recebi as informações concisas a partir daí, se é bastante permitido e correto usar NULL
como valor para operar em atribuições e outras operações aritméticas.