Berbilang Tahap Penyimpangan Penunjuk: Melebihi Penunjuk Berganda
Dalam pengaturcaraan, penunjuk menyediakan cara untuk mengakses alamat memori pembolehubah secara tidak langsung. Walau bagaimanapun, dalam beberapa keadaan, satu penuding tidak mencukupi, memerlukan penggunaan berbilang peringkat penyahrujukan penuding.
Apabila Penunjuk Tiga Masuk Masuk akal
Pertimbangkan kod berikut:
char ***ptr;
Bayangkan anda sedang menulis alat yang serupa dengan bash shell, yang menguruskan proses secara hierarki. Untuk mewakili persekitaran yang kompleks bagi setiap proses, anda boleh mentakrifkan struktur bernama invokasi yang merangkumi penuding kepada tatasusunan pembolehubah persekitaran:
struct invocation { ... char** env; ... };
Untuk menyemak imbas pembolehubah persekitaran berbilang proses, anda boleh mencipta tatasusunan contoh invocation dan hantarkannya kepada fungsi, seperti berikut:
void browse_env(size_t envc, char*** env_list);
Dalam konteks ini, char*** env_list ialah penunjuk kepada tatasusunan penunjuk kepada tatasusunan penunjuk kepada char. Struktur ini membolehkan anda merentasi hierarki:
Struktur penunjuk kompleks ini membolehkan traversal data hierarki struktur (senarai contoh seruan dengan pembolehubah persekitarannya) dan membenarkan manipulasi tetapan persekitaran yang cekap untuk setiap proses.
Atas ialah kandungan terperinci Bilakah Penunjuk Tiga Diperlukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!