Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencetak Alamat dengan Penunjuk Char Menggunakan `cout`?

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

DDD
DDDasal
2024-11-03 21:10:03860semak imbas

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;
}

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>

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!

Kenyataan:
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