Bagaimana untuk Mencetak Alamat dengan Penunjuk Char Menggunakan `cout`?

DDD
Lepaskan: 2024-11-03 21:10:03
asal
916 orang telah melayarinya

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

Tafsiran Cout Penunjuk Char

Tidak seperti printf(), yang menawarkan penentu penukaran khusus (%u atau %s) untuk menentukan sama ada untuk mencetak alamat atau keseluruhan rentetan yang ditunjuk oleh penuding char, cout memerlukan pendekatan yang jelas untuk perbezaan ini.

Contoh Masalah:

Pertimbangkan coretan kod berikut:

<code class="cpp">int main() {
  char ch = 'a';
  char *cptr = &ch;
  cout << cptr << endl;
  return 0;
}
Salin selepas log masuk

Dalam contoh ini, dengan pengkompil GNU lalai, cout mentafsir penunjuk char sebagai rentetan gaya C dan cuba mencetak aksara yang ditunjuk oleh cptr. Walau bagaimanapun, jika niatnya adalah untuk mencetak alamat ch sebaliknya, pendekatan yang berbeza diperlukan.

Penyelesaian:

Untuk mencetak alamat ch menggunakan cptr dengan cout , penghantaran jenis eksplisit diperlukan. Ini dicapai dengan menggunakan static_cast<> operator, seperti yang ditunjukkan di bawah:

<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>
Salin selepas log masuk

Dengan menghantar cptr secara eksplisit ke void *, resolusi beban lampau memilih operator ostream& yang sesuai yang mengambil penunjuk void sebagai hujah. Ini mencetak alamat ch.

dengan betul

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Alamat dengan Penunjuk Char Menggunakan `cout`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan