Selain cara yang sudah biasa digunakan, array bisa dicetak dengan menggunakan pointer. Berikut ini adalah program sederhana untuk mencetak array dengan menggunakan pointer.
#include <stdio.h>
void main()
{
int data[10]={1,2,3,4,5,6,7,8,9,10};
int *penunjuk;
int index;
penunjuk = data;
printf("Data array diakses dengan pointer\n");
for (index=0;index<10;index++)
{
printf("%d\n",*penunjuk++);
}
}
Berikut ini beberapa penjelasan dari program di atas.
int data[10]={1,2,3,4,5,6,7,8,9,10};
int *penunjuk;
int index;
Bagian ini adalah deklarasi variable, yang terdiri dari integer, array dan pointer.
penunjuk = data;
Bagian ini menghisi variable penunjuk dengan nilai variable data. Variable penunjuk adalah sebuah variable pointer, sehingga yang diterima dari variable data adalah alamat tempat variable tersebut berada di memory. Karena data adalah variable array, alamat yang diberikan adalah alamat dari index ke-0 atau element pertama dari array tersebut.
printf("Data array diakses dengan pointer\n");
for (index=0;index<10;index++)
{
printf("%d\n",*penunjuk++);
}
Bagian ini adlah bagian yang mencetak array. Perintah looping (for) digunakan untuk membatasi jumlah element array yang dicetak. Sedangkan bagian pencetakan (printf) mencetak isi dari alamat yang ditunjukan oleh pointer. Karena pointer menunjuk ke alamat array, maka yang di cetak adalah isi dari alamat tersebut, yaitu isi dari array. Pointer juga melakukan increment, yaitu setelah selesai mencetak, nilainya bertambah satu. Karena pointer berisi alamat, maka setelah mencetak, alamat yang ditunjuk juga bergeser ke alamat sebelahnya di memory, yaitu isi array selanjutnya.
Read more...