Heim  >  Artikel  >  Backend-Entwicklung  >  Ist es sicher, mit „if(pointer)' anstelle von „if(pointer != NULL)' nach Nicht-Null-Zeigern zu suchen?

Ist es sicher, mit „if(pointer)' anstelle von „if(pointer != NULL)' nach Nicht-Null-Zeigern zu suchen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 01:01:03799Durchsuche

Is it Safe to Check for Non-Null Pointers with `if(pointer)` Instead of `if(pointer != NULL)`?

Ü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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn