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

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

DDD
Freigeben: 2024-12-23 21:07:14
Original
562 Leute haben es durchsucht

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

Zeigerausdrücke verstehen: ptr , ptr und *ptr

In der C-Programmierung sind diese drei Ausdrücke häufig Wird verwendet, um Zeiger und die Werte, auf die sie zeigen, zu manipulieren. Das Verständnis ihres Verhaltens ist entscheidend für die effektive Arbeit mit Zeigern.

1. *ptr

  • Dieser Ausdruck dereferenziert effektiv zuerst den Zeiger und gibt den Wert zurück, auf den er zeigt.
  • Dann erhöht er den Zeiger um eine Einheit und zeigt auf das nächste Element im Array oder das nächste Zeichen im string.
  • Wenn ptr beispielsweise auf das erste Element eines Arrays zeigt, gibt *ptr den Wert dieses Elements zurück und erhöht dann ptr, um auf das zweite Element zu zeigen.

2. * ptr

  • Im Gegensatz zum vorherigen Ausdruck erhöht dieser zuerst den Zeiger
  • um eine Einheit.
  • Dann wird der Zeiger dereferenziert
  • gibt den Wert zurück, auf den der Zeiger jetzt zeigt.
  • Dies ist nützlich, wenn Sie es brauchen Greifen Sie auf den Wert des nächsten Elements zu, ohne den aktuellen Zeiger zu dereferenzieren.

3. *ptr

  • Dieser Ausdruck erhöht direkt den Wert an der Stelle, auf die ptr zeigt
  • .
  • Zuerst dereferenziert er den Zeiger
  • und gibt den Wert zurück, auf den es zeigt.
  • Dann wird der Wert erhöht value
  • um eine Einheit.
  • Dies kann verwendet werden, um den Wert zu ändern, auf den ptr zeigt.

Beispiele:

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;

printf("%d ", *ptr++); // Prints 1 and increments ptr to the second element
printf("%d ", *++ptr); // Increments ptr to the third element and prints 3
printf("%d\n", ++*ptr); // Increments the value at the third element and prints 4
Nach dem Login kopieren

Ausgabe:

1 3 4
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „*ptr', „*ptr' und „ptr' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage