Melalui Penunjuk mengikut Nilai berbanding Rujukan
Apabila menghantar penunjuk kepada fungsi, adalah penting untuk memahami perbezaan antara lulus dengan nilai dan melalui rujukan.
Dalam contoh yang disediakan, fungsi clickOnBubble cuba untuk menetapkan nilai targetBubble ke penunjuk yang disimpan dalam vektor buih. Walau bagaimanapun, fungsi ini hanya menghantar salinan targetBubble kepada fungsi, jadi sebarang perubahan yang dibuat pada salinan dalam fungsi tidak akan ditunjukkan dalam penuding asal.
Melalui Rujukan dengan Penunjuk-ke -Penunjuk
Untuk menukar penunjuk asal, ia perlu lulus melalui rujukan. Ini boleh dilakukan menggunakan penuding ke penuding, seperti yang ditunjukkan dalam kod berikut:
void foo(int **ptr) { *ptr = new int[10]; // Just for example, use RAII in a real-world application }
Dalam contoh ini, ptr ialah penuding kepada penuding. Apabila fungsi dipanggil, alamat targetBubble dihantar ke fungsi. Fungsi itu kemudiannya boleh menggunakan pengendali arah berganda (**) untuk mengakses dan mengubah suai penunjuk targetBubble asal.
Melalui Rujukan dengan Rujukan-ke-Tuding
Satu lagi cara untuk menghantar penunjuk melalui rujukan adalah dengan menggunakan rujukan-ke-penunjuk, seperti yang ditunjukkan dalam yang berikut kod:
void bar(int *&ptr) { ptr = new int[10]; }
Di sini, ptr ialah rujukan kepada penunjuk. Apabila fungsi dipanggil, rujukan terikat kepada targetBubble. Fungsi itu kemudiannya boleh mengubah suai targetBubble terus melalui rujukan.
Atas ialah kandungan terperinci Petunjuk dalam C : Lulus Mengikut Nilai lwn. Lulus Rujukan—Yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!