Heim >Backend-Entwicklung >C++ >Warum setzt C Zeiger nach dem Löschen nicht automatisch auf NULL?
Automatische Nullifizierung nach dem Löschen: Warum nicht?
Die Praxis, den Zeiger nach der Durchführung eines Löschvorgangs automatisch auf NULL zu setzen, ist eine Diskussionsthema für Programmierer. Viele argumentieren, dass diese Maßnahme das Auftreten von durch ungültige Zeiger verursachten Abstürzen erheblich reduzieren würde. Der C-Standard hat diesen Ansatz jedoch nicht übernommen, was die Benutzer neugierig auf die Gründe für diese Entscheidung macht.
Laut Bjarne Stroustrup, dem Erfinder von C, gab es mehrere Faktoren, die zum Ausschluss der automatischen Zeigernullierung beigetragen haben :
Überlegungen zur Leistung:
Die Einführung einer zusätzlichen Anweisung zum Nullsetzen des Zeigers könnte Auswirkungen haben die Gesamtleistung von Löschvorgängen, insbesondere in Szenarien, in denen die Leistung von entscheidender Bedeutung ist.
Const-Zeiger:
Const-Zeiger beziehen sich auf Speicherorte, die nicht geändert werden können. Das automatische Setzen solcher Zeiger auf NULL könnte zu undefiniertem Verhalten führen, da das Ändern des Inhalts eines Konstantenobjekts nicht zulässig ist.
Stroustrup räumte jedoch auch ein, dass diese Bedenken durch eine spezielle Behandlung von Konstantenzeigern hätten angegangen werden können.
Der Standard erlaubt Löschvorgänge für R-Werte (temporäre Objekte), die nicht auf Null gesetzt werden können. Diese durch die Sprache selbst auferlegte technische Einschränkung stellt ein weiteres Hindernis für die automatische Zeigeraufhebung dar.
Das obige ist der detaillierte Inhalt vonWarum setzt C Zeiger nach dem Löschen nicht automatisch auf NULL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!