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
577 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!

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