Czy mogę używać NULLwskaź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
NULLw ten sposób wykorzystywać ? - Czy jest coś złego w używaniu
NULLjako 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, \0i 0jest, ale nie otrzymałem stamtąd zwięzłych informacji, jeśli jest to całkiem dopuszczalne, a także prawo do używania NULLjako wartość do obsługi w zadaniach i innych operacjach arytmetycznych.