Darf ich den NULL
Zeiger als Ersatz für den Wert von verwenden 0
?
Oder ist daran etwas falsch?
Wie zum Beispiel:
int i = NULL;
als Ersatz für:
int i = 0;
Als Experiment habe ich folgenden Code kompiliert:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Ausgabe:
0
In der Tat gibt es mir diese Warnung, die für sich genommen völlig richtig ist:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
aber das Ergebnis ist immer noch gleichwertig.
- Überquere ich damit "Undefiniertes Verhalten"?
- Ist eine Verwendung
NULL
auf diese Weise zulässig ? - Ist etwas falsch daran,
NULL
einen numerischen Wert in arithmetischen Ausdrücken zu verwenden? - Und was ist das Ergebnis und Verhalten in C ++ für diesen Fall?
Ich habe die Antworten liest Was ist der Unterschied zwischen NULL, ‚\ 0‘ und 0 zu wissen , was der Unterschied zwischen NULL
, \0
und 0
ist, aber ich habe nicht die prägnanten Informationen von dort erhalten, wenn es durchaus zulässig ist und auch Recht auf Verwendung NULL
als Wert, mit dem in Aufgaben und anderen arithmetischen Operationen gearbeitet werden soll.