Apa itu Operator Dereference?

Dalam pemrograman komputer, operator dereference, juga dikenal sebagai operator tidak langsung, beroperasi pada variabel pointer dan mengembalikan nilai lokasi, atau nilai-l, yang menunjuk ke dalam memori. Dalam bahasa pemrograman C, operator deferensi dilambangkan dengan tanda bintang ( * ).

Misalnya, dalam C, kita dapat mendeklarasikan variabel x yang menyimpan nilai integer, dan variabel p yang menyimpan pointer ke nilai integer dalam memori:

 int x; int * p; 

Di sini, tanda bintang memberi tahu kompiler, " p bukan bilangan bulat, melainkan sebuah penunjuk ke lokasi di memori yang menyimpan bilangan bulat." Di sini, ini bukan dereferensi, tetapi bagian dari deklarasi pointer.

Sekarang kita dapat mengatur p ke lokasi yang dialokasikan untuk nilai x menggunakan operator &, yang berarti "alamat."

 p = & x; 

Tindakan ini memberi tahu kompiler, "Alamat dalam memori yang menunjuk ke p adalah alamat yang Anda alokasikan untuk integer x ."

Sebagai ilustrasi, jika kita menetapkan nilai x ke 1 menggunakan metode konvensional, dan mencetak nilai, hasilnya akan menjadi 1 .

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

Namun, kami juga dapat mengubah nilai x dengan merujuk p . Kami melakukan ini dengan tanda bintang:

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

Dan output berubah menjadi 2 .

Dengan kata lain, setelah p telah dinyatakan sebagai pointer dengan tipe yang sama dengan x dan kemudian diatur untuk menunjuk ke nilai x, kita dapat menggunakan x dan * p secara bergantian. Karena keduanya merujuk pada hal yang sama, mengubah nilai satu akan mengubah nilai yang lain.

Pointer, istilah pemrograman, Variabel