C++ Nullzeiger
Wenn eine Variable deklariert wird und keine genaue Adresse zugewiesen werden kann, ist es eine gute Programmierpraxis, der Zeigervariablen einen NULL-Wert zuzuweisen. Ein Zeiger, dem ein NULL-Wert zugewiesen wurde, wird alsleererZeiger bezeichnet.
Ein NULL-Zeiger ist eine in der Standardbibliothek definierte Konstante mit dem Wert null. Betrachten Sie das folgende Programm:
Beispiel
using namespace std;
int main ()
{
int *ptr = NULL;
cout << "Der Wert von ptr ist " << ptr ;
return 0;
}
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
ptr 的值是 0
Auf den meisten Betriebssystemen dürfen Programme nicht auf Speicher an Adresse 0 zugreifen, da dieser Speicher vom Betriebssystem reserviert ist. Allerdings hat die Speicheradresse 0 eine besondere Bedeutung; sie zeigt an, dass der Zeiger nicht auf eine zugängliche Speicherstelle zeigt. Konventionell wird jedoch angenommen, dass ein Zeiger, der einen Nullwert (null) enthält, auf nichts zeigt.
Um einen Nullzeiger zu prüfen, können Sie eine if-Anweisung verwenden, wie unten gezeigt:
if(ptr) /* 如果 ptr 非空,则完成 */ if(!ptr) /* 如果 ptr 为空,则完成 */
Wenn daher allen unbenutzten Zeigern Nullwerte zugewiesen werden und die Verwendung von Nullzeigern vermieden wird, kann der Missbrauch eines nicht initialisierten Zeigers verhindert werden. Häufig enthalten nicht initialisierte Variablen Müllwerte, was das Debuggen von Programmen erschwert.
Weitere Erweiterungen