Maison >développement back-end >C++ >Quelle est la différence entre `ptr`, `ptr` et ` *ptr` en C/C ?
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.
Cette expression déréférence le pointeur puis incrémente le adresse.
Exemple :
char *p = "Hello"; while (*p++) { printf("%c", *p); }
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'.
Cette expression incrémente l'adresse du pointeur puis déréférence le pointeur.
Exemple :
char *p = "Hello"; printf("%c", *++p);
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'.
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);
Ce code imprime "I" car la valeur à l'adresse est directement incrémentée à 'I'.
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)++);
Ce code imprime "H" puis crée la cible d'incrément suivante 'Je'.
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!