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 betulAtas 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!