Heim >Backend-Entwicklung >C++ >Wie vergleiche ich Zeiger auf Gleichheit in C?

Wie vergleiche ich Zeiger auf Gleichheit in C?

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 19:40:03309Durchsuche

How Do I Compare Pointers for Equality in C  ?

Bestimmen der Objektgleichheit zwischen Zeigern

In C hängt der Vergleich zweier Zeiger mit dem Gleichheitsoperator (==) von ihren jeweiligen Objekten ab .

Zeiger auf Objekte

Für Zeiger (a und b) zeigen auf Objekte desselben Typs. Die Gleichheitsoperation (a == b) gibt in den folgenden Fällen „true“ zurück:

  • Beide Zeiger sind null
  • Beide Zeiger Zeigen Sie auf dasselbe Objekt im Speicher
  • Beide Zeiger stellen dieselbe Adresse dar

Zeiger auf Funktionen

Wenn die Zeiger auf Funktionen desselben Typs zeigen, gibt der Vergleich auch dann „true“ zurück, wenn sie auf dieselbe Funktion zeigen.

Zeiger auf Array-Elemente

Wenn Zeiger auf Elemente innerhalb eines Arrays zeigen, gibt der Vergleich „true“ zurück, wenn sie auf dasselbe Element verweisen oder eins nach dem letzten Element desselben liegen Array.

Nicht spezifizierte Vergleiche

In bestimmten Szenarios ist das Verhalten des Gleichheitsoperators für Zeiger nicht spezifiziert. Dazu gehört:

  • Vergleich von Zeigern auf Objektmitglieder verschiedener Zugriffsebenen
  • Vergleich von Zeigern auf nicht statische Datenmitglieder von Union-Objekten
  • Vergleich von Zeigern auf Nicht-lokale Variablen in verschiedenen Funktionen

Standardbibliotheken Erweiterung

Die C-Standardbibliothek stellt die std::less<> Vorlage, die eine globale Reihenfolge für jeden Zeigertyp bietet, unabhängig vom durch die integrierten Operatoren definierten Vergleichsverhalten. Dies ermöglicht konsistente Vergleiche von Void-Zeigern.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich Zeiger auf Gleichheit in C?. 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