Pointer & Bahasa C

Dalam suatu kode bahasa C:

contoh kode dalam bahasa C yang menggunakan tipe data pointer

Pada contoh program diatas, huruf di-inisialisasi sebagai suatu variabel yang
dapat menyimpan suatu data dalam memory, dalam hal ini tipe data yang dapat disimpan adalah char (8 bit). Sedangkan p merupakan suatu variable dengan tipe data pointer. Program diatas akan memberikan nilai ‘A’ pada variable huruf dan memberikan alamat lokasi variable huruf dalam memory kepada variable p. Hal ini merupakan teori dasar dalam pemrograman bahasa C.

running program pointer_memory.c

Dari contoh diatas kita menggunakan variable p untuk me-reference dan
me-dereference variable huruf. Variable p me-reference lokasi variable
huruf dalam memory yang nilainya adalah 0xbffff3f7, dan variable p
men-dereference variable huruf yang nilainya adalah A.

pengertian “reference” dan “dereference” suatu variable dalam memory

Ilustrasi diatas menunjukan lebih jelas bahwa variable p yang berlokasi di
0xbffff3f0 berisi data 0xbffff3f7 yang merupakan lokasi variable huruf dalam memory.

Saya harap penjelasan singkat tersebut bisa menjelaskan makna Reference dan Dereference dari suatu tipe data pointer dalam bahasa C. Pemahaman ini sangat penting karena akan menjadi dasar pengetahuan hingga akhir artikel.

Berikut ini contoh kode dalam bahasa C yang juga memainkan fungsi pointer:

source code C yang menunjukan cara dereference suatu pointer

berikut ini hasil kompilasi dan running program diatas.

mengeluarkan output dari suatu array dengan menggunakan dereference

Program diatas menunjukan pointer dereference dari variable array. Variable array merupakan suatu variable yang mengalokasikan data sebanyak 5 buah dengan tipe char ( 1 byte = 8 bit). Variable pointer akan men-reference kan lokasi variable array dalam memory, hal ini tergantung dari bagaimana kita men-reference kan lokasi variable array. Pada contoh diatas, variable pointer akan menunjuk pada lokasi data pertama variable array di-memory.

Untuk mendapatkan data yang berada diposisi ketiga dalam variable array dapat memanfaatkan pointer dereference, syntax *(pointer+3) digunakan untuk kebutuhan tersebut. Angka tiga pada saat men-dereference variable pointer merupakan (3 * 1 byte) dari posisi awal variable array, proses ini tergantung pada inisialisasi variable pointer dimana pada program diatas bertipe char (1 byte).

Jadi untuk mengakses data A diatas bisa melalui 2 cara yaitu melalui variable array secara langsung ataupun melalui derefence dari suatu pointer. Dengan ini maka kita sepakat bahwa syntax berikut akan memberikan data yang sama,

Good. Cukup tentang pointer, jika masih ada yang masih belum paham silahkan pelajari bahasa C dari beragam referensi di internet.