Lorsqu'il s'agit de pointeurs char, le choix entre sortir l'adresse ou la chaîne le contenu peut prêter à confusion. Dans le cas de printf(), la décision est claire et basée sur le spécificateur de conversion. Cependant, lorsqu'il s'agit de cout, le processus de sélection est moins évident.
En C , cout est une instance de la classe ostream, qui propose plusieurs versions surchargées de l'opérateur< ;≪. Lors de l’impression d’un pointeur char, le compilateur doit déterminer quelle surcharge utiliser. Par défaut, cout donnera la priorité à la surcharge destinée aux chaînes de style C, qui imprime le contenu de la chaîne.
Pour remplacer ce comportement et imprimer l'adresse à la place, une conversion est nécessaire. La surcharge souhaitée prend un pointeur void en entrée. Par conséquent, vous pouvez utiliser le code suivant :
cout << static_cast(cptr) << endl;
Cette conversion convertit explicitement le pointeur char en un pointeur vide, forçant cout à utiliser la surcharge appropriée. En conséquence, l'adresse de ch sera imprimée.
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!