Sekarang saya akan coba menjelaskan tentang pointer pada bahasa C
pointer '*' adalah suatu variabel yang menunjuk ke variabel lain. Bagaimana bisa begitu?
pada dasarnya pointer bukan menyimpan nilai suatu variabel, tetapi alamat variabel yang ditunjuk
Dapat dianalogikan seperti ini
- Variabel 'Rumah' berisi 'manusia'
- Variabel 'Rumah' tersebut memiliki address katakan pada 'jalan 1'
- Pointer 'Alamat' berisi 'jalan 1'
- Pointer 'Alamat' sendiri memiliki address katakan pada 'jalan 2'
- Nah, apabila kita melihat isi 'Alamat', yang muncul adalah 'jalan 1'
- Jika melihat address dari 'Alamat', akan muncul 'jalan 2'
- Sedangkan melihat isi dari address yang ditunjuk 'Alamat' akan muncul 'manusia'
var1 merupakan variabel bertipe 'integer' yang menyimpan angka 10
var2 merupakan variabel bertipe 'pointer to integer' yang menyimpan alamat dari var1
var3 merupakan variabel bertipe 'pointer to pointer to integer' yang menyimpan alamat dari var2
var merupakan array 1 dimensi dengan jumlah elemen = 5
Program diatas akan menunjukkan bahwa
- Nilai var1 adalah 10
- Nilai yang dirujuk oleh var2 adalah nilai var1 (=10)
- Nilai var2 adalah alamat var1
- Nilai yang dirujuk oleh var3 adalah alamat var1 (=var2)
- Nilai var3 adalah alamat var2
- Nilai dari array var adalah alamat elemen ke 0 dari array tersebut