Memahami Saiz Penunjuk dalam C
Timbul persoalan, "Adakah saiz penunjuk bergantung pada saiz jenis yang ditunjukkannya , atau adakah penunjuk sentiasa mengekalkan saiz tetap?" Mari kita mendalami konsep ini, membina asas soalan pendua.
Dalam C , penunjuk biasanya mempunyai saiz tetap. Dalam boleh laku 32-bit, mereka biasanya menduduki 32 bit. Walau bagaimanapun, pengecualian wujud, seperti dalam versi Windows yang lebih lama, di mana penunjuk 16-bit dan 32-bit perlu dibezakan.
Pertimbangkan coretan kod berikut:
int x = 10; int *xPtr = &x; char y = 'a'; char *yPtr = &y; std::cout << sizeof(x) << "\n"; std::cout << sizeof(xPtr) << "\n"; std::cout << sizeof(y) << "\n"; std::cout << sizeof(yPtr) << "\n";
Dalam ini senario, outputnya adalah seperti berikut:
Ia penting untuk ambil perhatian bahawa walaupun penunjuk biasanya mempunyai saiz yang konsisten, adalah tidak bijak untuk bergantung pada andaian ini dalam kod anda. Jika program anda bergantung pada penunjuk yang mempunyai saiz tertentu, sentiasa sahkannya dengan jelas.
Penunjuk fungsi ialah pengecualian yang ketara. Saiznya boleh berbeza-beza bergantung pada konvensyen panggilan yang digunakan oleh sistem atau pengkompil tertentu. Rujuk respons yang diberikan oleh 'Jens' untuk mendapatkan maklumat lanjut tentang penunjuk fungsi.
Atas ialah kandungan terperinci Adakah Penunjuk dalam C Mempunyai Saiz Tetap Tanpa mengira Jenis Data yang Ditunjukkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!