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