Maison > développement back-end > C++ > Quelle est la différence entre `ptr `, ` ptr`, ` *ptr` et `(*ptr) ` en C ?

Quelle est la différence entre `ptr `, ` ptr`, ` *ptr` et `(*ptr) ` en C ?

Susan Sarandon
Libérer: 2024-12-20 03:52:13
original
457 Les gens l'ont consulté

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

Pointeurs : ptr , ptr et *ptr

Ces expressions de pointeurs prêtent souvent à confusion, clarifions donc leur significations :

1. *ptr :

  • Déréférence le pointeur ptr et renvoie la valeur pointée.
  • Incrémente le pointeur ptr pour pointer vers l'élément suivant.

Exemple :

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

2. * ptr :

  • Incrémente d'abord le pointeur ptr, en le déplaçant vers l'élément suivant.
  • Ensuite, дереференсирует le pointeur mis à jour, renvoyant la valeur pointée à.

Exemple :

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

3. *ptr :

  • Déréférence le pointeur ptr, renvoyant la valeur pointée.
  • Ensuite, incrémente la valeur déréférencée.

Attention : Incrémente la valeur, pas le pointeur ptr.

Exemple :

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

4. Bonus : (*ptr) :

  • Force le déréférencement de ptr, qui obtient la valeur pointée.
  • Incrémente la valeur déréférencée.

Attention : Semblable à *ptr, cela affecte la valeur, pas le pointeur lui-même.

Exemple :

int *ptr = new int(5);
cout << (*ptr)++; // Outputs 5 and updates the dereferenced integer to 6
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal