Überprüfung auf Nicht-Null-Zeiger: if(pointer) vs. if(pointer != NULL)
Frage:
Ist es akzeptabel, den Nicht-Null-Status eines Zeigers mithilfe von if(pointer) anstelle des herkömmlichen if(pointer != NULL) zu überprüfen?
Antwort:
Ja, das ist zulässig. Die Verwendung von if(pointer) ist sicher, da der Nullzeiger implizit in den booleschen Wert „false“ konvertiert wird, während Nicht-Null-Zeiger in „true“ konvertiert werden. Dieses Verhalten ist im C 11-Standard im Abschnitt über boolesche Konvertierungen definiert:
„Ein Wert vom Typ Arithmetik, nicht begrenzte Aufzählung, Zeiger oder Zeiger auf den Elementtyp kann in einen Wert vom Typ bool konvertiert werden. Eine Null.“ value, null pointer value oder null member pointer value wird in „false“ konvertiert; jeder andere Wert wird in „true“ konvertiert. Ein Wert vom Typ „std::nullptr_t“ kann in einen Wert vom Typ „bool“ konvertiert werden 🎜>
Das obige ist der detaillierte Inhalt vonIst es sicher, mit „if(pointer)' anstelle von „if(pointer != NULL)' nach Nicht-Null-Zeigern zu suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!