Darf ich den NULLZeiger 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
NULLauf diese Weise zulässig ? - Ist etwas falsch daran,
NULLeinen 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, \0und 0ist, aber ich habe nicht die prägnanten Informationen von dort erhalten, wenn es durchaus zulässig ist und auch Recht auf Verwendung NULLals Wert, mit dem in Aufgaben und anderen arithmetischen Operationen gearbeitet werden soll.