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

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

Linda Hamilton
Libérer: 2024-12-20 07:20:09
original
219 Les gens l'ont consulté

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

Expressions de pointeur : ptr, ptr et *ptr

Comprendre ces trois expressions de pointeur peut être intimidant. Ce guide détaillé détaillera le fonctionnement de chaque expression et fournira des exemples pour leur application pratique dans le code.

*ptr

Cette expression déréférence le pointeur puis incrémente le adresse.

Exemple :

char *p = "Hello";
while (*p++) {
    printf("%c", *p);
}
Copier après la connexion

Ce code imprime "ello" au lieu de "Bonjour" car le pointeur est incrémenté après avoir accédé au caractère, sauter le caractère 'H'.

* ptr

Cette expression incrémente l'adresse du pointeur puis déréférence le pointeur.

Exemple :

char *p = "Hello";
printf("%c", *++p);
Copier après la connexion

Ce code imprime "e" comme caractère après le la valeur initiale du pointeur (qui pointe vers « H ») est accessible avant d'être incrémentée pour pointer vers 'e'.

*ptr

Cette expression déréférence le pointeur puis incrémente la valeur à l'adresse.

Exemple :

char q[] = "Hello";
char *p = q;
printf("%c", ++*p);
Copier après la connexion

Ce code imprime "I" car la valeur à l'adresse est directement incrémentée à 'I'.

(*ptr)

Cette expression est légèrement différente et force un déréférencement avant d'incrémenter la valeur.

Exemple :

char q[] = "Hello";
char *p = q;
printf("%c", (*p)++);
Copier après la connexion

Ce code imprime "H" puis crée la cible d'incrément suivante 'Je'.

Conclusion

Ces expressions de pointeur offrent une flexibilité dans la manipulation du pointeur. Cependant, il est crucial d'être conscient de leurs subtilités, notamment de l'ordre de priorité, de l'évaluation de la valeur et des effets secondaires. En comprenant ces opérations en détail, vous pouvez les utiliser efficacement dans votre code et éviter les pièges potentiels.

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