Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen „ptr', „ptr', „*ptr' und „(*ptr)' in C?

Was ist der Unterschied zwischen „ptr', „ptr', „*ptr' und „(*ptr)' in C?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 03:52:13461Durchsuche

What's the Difference Between `ptr  `, `  ptr`, `  *ptr`, and `(*ptr)  ` in C  ?

Zeiger: ptr , ptr und *ptr

Diese Zeigerausdrücke sind oft verwirrend, also lassen Sie uns sie klären Bedeutungen:

1. *ptr :

  • Dereferenziert den Zeiger ptr und gibt den Wert zurück, auf den gezeigt wird.
  • Inkrementiert den Zeiger ptr, um auf das nächste Element zu zeigen.

Beispiel:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *ptr++; // Outputs 1 and then points to the next element (2)

2. * ptr:

  • Inkrementiert zuerst den Zeiger ptr und verschiebt ihn zum nächsten Element.
  • Dann wird der aktualisierte Zeiger geändert und der angezeigte Wert zurückgegeben zu.

Beispiel:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *++ptr; // Moves the pointer to the next element and outputs 2

3. *ptr:

  • Dereferenziert den Zeiger ptr und gibt den Wert zurück, auf den gezeigt wird.
  • Erhöht dann den dereferenzierten Wert.

Achtung: Erhöht den Wert, nicht den Zeiger ptr.

Beispiel:

int *ptr = new int(5); // Points to a dynamically allocated integer
cout << ++*ptr; // Outputs 6 and updates the dereferenced integer to 6

4. Bonus: (*ptr) :

  • Erzwingt die Dereferenzierung von ptr, wodurch der Wert, auf den verwiesen wird, erhalten wird.
  • Erhöht den dereferenzierten Wert.

Achtung: Ähnlich wie *ptr wirkt es sich auf den Wert aus, nicht auf den Zeiger selbst.

Beispiel:

int *ptr = new int(5);
cout << (*ptr)++; // Outputs 5 and updates the dereferenced integer to 6

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „ptr', „ptr', „*ptr' und „(*ptr)' 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