Apakah itu Pengendali Dereference?

Dalam pengaturcaraan komputer, pengendali dereferen, yang juga dikenali sebagai pengendali indireksi, beroperasi pada pembolehubah penunjuk dan mengembalikan nilai lokasi, atau nilai-l, yang menunjukkan ingatan. Dalam bahasa pengaturcaraan C, pengendali penentangan dilambangkan dengan asterisk ( * ).

Sebagai contoh, dalam C, kita boleh mengisytiharkan pembolehubah x yang memegang nilai integer, dan p berubah-ubah yang memegang penunjuk kepada nilai integer dalam ingatan:

 int x; int * p; 

Di sini, asterisk memberitahu pengkompil, " p bukan integer, tetapi sebaliknya penunjuk ke lokasi dalam ingatan yang memegang integer." Di sini, ia bukan dereference, tetapi sebahagian daripada pengisytiharan penunjuk.

Sekarang kita boleh menetapkan p ke lokasi yang diperuntukkan untuk nilai x menggunakan & operator, yang bermaksud "alamat."

 p = & x; 

Tindakan ini memberitahu pengkompil, "Alamat di ingatan bahawa p poin ialah alamat yang anda peruntukkan untuk integer x ."

Untuk menggambarkan, jika kita menetapkan nilai x kepada 1 menggunakan kaedah konvensional, dan mencetak nilai, output akan menjadi 1 .

 x = 1; printf ("% d", x); 

Walau bagaimanapun, kita juga boleh menukar nilai x dengan merujuk p . Kami melakukan ini dengan tanda bintang:

 * p = 2; printf ("% d", x); 

Dan perubahan output menjadi 2 .

Dalam erti kata lain, selepas p telah diisytiharkan sebagai penunjuk jenis yang sama dengan x dan kemudian ditetapkan untuk menunjukkan nilai x, kita boleh menggunakan x dan * p secara bertukar ganti. Oleh kerana kedua-duanya merujuk kepada perkara yang sama, mengubah nilai satu akan mengubah nilai yang lain.

Penunjuk, istilah pemrograman, pemboleh ubah