Maison > développement back-end > C++ > Comment imprimer des adresses avec des pointeurs de caractères à l'aide de « cout » ?

Comment imprimer des adresses avec des pointeurs de caractères à l'aide de « cout » ?

DDD
Libérer: 2024-11-03 21:10:03
original
920 Les gens l'ont consulté

How to Print Addresses with Char Pointers Using `cout`?

Interprétation Cout des pointeurs de caractères

Contrairement à printf(), qui propose des spécificateurs de conversion spécifiques (%u ou %s) pour déterminer s'il faut imprime une adresse ou la chaîne entière pointée par un pointeur char, cout nécessite une approche explicite pour cette distinction.

Exemple de problème :

Considérez l'extrait de code suivant :

<code class="cpp">int main() {
  char ch = 'a';
  char *cptr = &ch;
  cout << cptr << endl;
  return 0;
}
Copier après la connexion

Dans cet exemple, avec le compilateur GNU par défaut, cout interprète le pointeur char comme une chaîne de style C et tente d'imprimer le caractère pointé par cptr. Cependant, si l'intention est d'imprimer l'adresse de ch à la place, une approche différente est nécessaire.

Solution :

Pour imprimer l'adresse de ch en utilisant cptr avec cout , un cast de type explicite est requis. Ceci est réalisé en utilisant le static_cast<> opérateur, comme démontré ci-dessous :

<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>
Copier après la connexion

En convertissant explicitement cptr en void *, la résolution de surcharge sélectionne l'opérateur ostream& approprié qui prend un pointeur void comme argument. Cela imprime correctement l'adresse de ch.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal