Czy mogę używać NULL
wskaźnika jako zamiennika wartości 0
?
Czy jest w tym coś złego?
Jak na przykład:
int i = NULL;
jako zamiennik dla:
int i = 0;
W ramach eksperymentu skompilowałem następujący kod:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Wynik:
0
Rzeczywiście daje mi to ostrzeżenie, które samo w sobie jest całkowicie poprawne:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
ale wynik jest nadal równoważny.
- Czy przechodzę przez to do „Nieokreślonego zachowania”?
- Czy można
NULL
w ten sposób wykorzystywać ? - Czy jest coś złego w używaniu
NULL
jako wartości liczbowej w wyrażeniach arytmetycznych? - A jaki jest wynik i zachowanie w C ++ w tym przypadku?
Przeczytałem odpowiedzi na pytanie Jaka jest różnica między NULL, „\ 0” i 0 na temat różnicy między NULL
, \0
i 0
jest, ale nie otrzymałem stamtąd zwięzłych informacji, jeśli jest to całkiem dopuszczalne, a także prawo do używania NULL
jako wartość do obsługi w zadaniach i innych operacjach arytmetycznych.