POINTER
POINTER
Pointer
adalah sebuah variabel yang menyimpan alamat dari variabel lain.
Pointer biasa ditulis dengan tanda bintang (*) di depan nama
variabelnya.
Contoh :
angka1 = &angka; berarti pointer angka1 menyimpan alamat dari variabel angka.
Ketika kita ingin mencetak isi dari pointer angka1 maka :
Output :
1
printf ("%d", *angka1); menandakan kita mencetak isi dari pointer angka1.
Pointer juga bisa menunjuk pointer lain, contohnya :
Output :
1 1 1 1
angka1 = &angka; berarti pointer angka1 menyimpan alamat dari variabel angka.
angka2 = &angka1; berarti pointer angka2 menyimpan alamat dari pointer angka1.
angka3 = &angka2; berarti pointer angka3 menyimpan alamat dari pointer angka2.
Pointer
angka3 menunjuk pointer angka2, dimana pointer angka2 menunjuk pointer
angka1, dan pointer angka1 menunjuk pada alamat variabel angka.
Maka isi dari angka3 adalah angka2, isi dari angka2 adalah angka1, dan isi dari angka1 adalah angka.
Dimana ketika angka = 1, dan angka disimpan di 2293324, maka
angka1 = 2293324, jika angka1 disimpan di 2293312, maka
angka2 = 2293312, jika angka2 disimpan di 2293304, maka
angka3 = 2293304.
Ketika
kita mencetak isi dari angka3 (*angka3) maka yang keluar bukan 1,
tetapi 2293312, yaitu angka2. Ketika kita mencetak isi dari isi angka3
(**angka3) maka yang keluar juga bukan 1, tetapi 2293324. Mengapa? isi
dari angka3 adalah angka2, isi dari angka2 adalah angka1, maka isi dari
isi angka3 adalah angka1. Ketika kita ingin mencetak 1, maka kita harus
mencetak isi dari isi dari isi angka3 (***angka3). Maka outputnya adalah
1.
Keunikan dari pointer ini adalah, ketika salah satu pointer diganti maka semua ikut terganti. Contoh:
Walaupun
diatas dinyatakan angka=1, ketika kita menyatakan ***angka3=5, maka
semua akan terganti menjadi 5, termasuk variabel angka itu sendiri.
Comments
Post a Comment