Mengamati Deklarasi Pointer ke Array
Keterangan : 1.
nama_pointer adalah pointer yang menunjuk array 2.
nama_array adalah nama variabel array 3.
tipe_data adalah tipe data yang digunakan pada array 4.
iAwal adalah indeks awal dari array 5.
iAkhir adalah indeks akhir dari array 6.
Banyaknya elemen yang dimiliki array adalah iAkhir - iAwal
Contoh 1. Pendeklarasian Pointer ke Array Var
ipoin :integer; nilai : array[1..10] of integer;
Keterangan : 1.
ipoin adalah pointer yang menunjuk data dengan tipe integer 2.
nilai adalah array yang memiliki elemen berjumlah 10 dengan tipe data integer
Menginisiasi Pointer ke Array
Untuk menginisiasi pointer ke Array dapat digunakan perintah sebagai berikut: nama_pointer:= nama_array[Index_awal];
Keterangan : 1.
nama_pointer adalah pointer yang menunjuk array 2.
nama_array adalah nama variabel array 3.
iAwal adalah indeks awal dari array Contoh 2. Inisiasi Pointer ke Array
ipoin := nilai[1]; Keterangan :
1. ipoin adalah pointer yang menunjuk data dengan tipe integer
2. nilai adalah array yang memiliki elemen berjumlah 10 dengan tipe data integer
Dengan demikian pointer nama_pointer telah menunjuk elemen pertama dari array nilai
Mengakses elemen Array dengan Pointer
Untuk mengakses elemen Array dapat digunakan perintah sebagai berikut: nama_pointer
Aritmatika Pointer pada Array
Array menempati slot memori berturut-turut di memori komputer. Di sinilah aritmatika pointer berguna. Jika Anda membuat pointer ke elemen pertama, penambahan satu increment akan
membuat sebuah titik ke elemen berikutnya. Misalkan ipoin adalah pointer integer yang menunjuk alamat dari suatu variabel integer yaitu 1000, maka dengan perintah:
Incnama_pointer; Atau sama dengan:
nama_pointer:=nama_pointer+1; Sekarang pointer ipoin menunjuk lokasi 1002 karena setiap ipoin ditambahkan satu, pointer
akan menunjuk alamat integer selanjutnya, dimana letaknya 2 bytes dari alamat semula. Jika ptr menunjuk suatu variabel dengan type char, dengan alamat 1000, maka operasi diatas akan
menunjuk alamat 1001 karena variabel char selanjutnya berada di 1001 atau 1 bytes dari alamat semula. Demikian juga sebaliknya untuk pengurangan satu decrement.
Decnama_pointer; Atau sama dengan:
nama_pointer:=nama_pointer-1;
Contoh 3. Increment pada pointer Incipoin;
Keterangan : Dengan perintah Inc maka sekarang pointer ipoin menunjuk elemen kedua dari variabel nilai
Contoh 4. Decrement pada pointer Decipoin;
Keterangan : Dengan perintah Dec maka sekarang pointer ipoin kembali menunjuk elemen pertama dari
variabel nilai Selain operasi increment dan decrement, pada pointer juga berlaku operasi penambahan
dan pengurangan, akan tetapi hanya untuk penambahan dan pengurangan dengan nilai integer saja. Jika suatu pointer ditambahkan 1 berarti pointer akan menunjuk alamat selanjutnya tepat
yang letaknya sesuai bytes tipe data dari alamat semula, demikian juga jika ditambah dua berarti pointer akan menunjuk alamat yang berlokasi 2 kali ukuran bytes dari alamat semula. Misalnya
Variabel pointer iptr menunjuk alamat 1000 dari suatu variabel yang bertipe data integer. Jika dilakukan operasi :
iptr:=iptr+2;
Maka pointer sekarang menunjuk alamat 1000+2x2 bytes=1004, dengan kata lain pointer menunjuk alamat yang berjarak 4 dari alamat semula, demikian juga seterusnya.
Sama halnya dengan penambahan, Jika suatu pointer dikurangi 1 berarti pointer akan menunjuk alamat sebelumnya tepat dari alamat semula. Sehingga jika ditambah dua berarti pointer
akan menunjuk alamat yang berlokasi 2 kali ukuran bytes sebelumnya dari alamat semula. Contoh 4. Penjumlahan pada pointer
ipoin:= ipoin+3; Keterangan :
Dengan perintah diatas maka apabila pointer awalnya menunjuk elemen pertama, sekarang pointer ipoin menunjuk elemen keempat dari variabel array nilai.
Contoh 5. Pengurangan pada pointer ipoin:= ipoin-2;
Keterangan : Dengan perintah diatas maka apabila pointer awalnya menunjuk elemen keempat, sekarang
pointer ipoin menunjuk elemen kedua dari variabel array nilai.