Rumah >pembangunan bahagian belakang >C++ >Adakah Saiz Penunjuk Sentiasa Padan dengan Jenis Data yang Ditunjuk?
Memahami Saiz Penunjuk
Dalam pengaturcaraan, penunjuk sering digunakan untuk menyimpan alamat memori dan data rujukan di bahagian lain program. Soalan biasa timbul: Adakah saiz penuding sepadan dengan saiz jenis yang ditunjukkannya, atau adakah penunjuk sentiasa mempunyai saiz tetap?
Penunjuk Saiz Tetap
Dalam kebanyakan kes, penunjuk mempunyai saiz tetap, bebas daripada jenis yang mereka rujuk. Saiz tetap ini ditentukan oleh seni bina sistem asas. Sebagai contoh, pada mesin dengan seni bina 32-bit, penuding biasanya menduduki 32 bit memori, tanpa mengira saiz data yang mereka tunjuk.
Contoh Pelaksanaan
Pertimbangkan coretan kod C berikut:
int x = 10; int * xPtr = &x; // Pointer to an integer char y = 'a'; char * yPtr = &y; // Pointer to a character
Jika kita menyusun dan menjalankan kod ini:
std::cout << sizeof(x) << "\n"; // Size of integer std::cout << sizeof(xPtr) << "\n"; // Size of integer pointer std::cout << sizeof(y) << "\n"; // Size of character std::cout << sizeof(yPtr) << "\n"; // Size of character pointer
Outputnya mungkin:
4 8 // Pointer size on a 64-bit machine 1 8 // Pointer size on a 64-bit machine
Seperti yang anda lihat, saiz kedua-dua penunjuk (xPtr dan yPtr) adalah sama, walaupun ia menunjuk kepada data yang berlainan saiz (integer dan watak).
Pengecualian
Walaupun penunjuk biasanya mempunyai saiz tetap, terdapat beberapa pengecualian. Sebagai contoh, pada sistem Windows 16-bit lama, terdapat penunjuk 16-bit dan 32-bit. Walau bagaimanapun, pada sistem pengendalian desktop moden, secara amnya selamat untuk menganggap bahawa penunjuk dalam boleh laku tertentu mempunyai saiz yang seragam.
Atas ialah kandungan terperinci Adakah Saiz Penunjuk Sentiasa Padan dengan Jenis Data yang Ditunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!