Page 156 - Project Akhir Media Pendidikan
P. 156

*( (int *) P)               /* dan */           *( (double *) P)

                      Ini berarti sebelum  kita melakukan  dereference  pointer,  kita harus  menganggap  pointer
                      P  sebagai pointer yang menunjuk ke tipe  int  ataupun double  terlebih dahulu. Jadi
                      kesimpulannya  kita  tidak  dapat  melakukan  dereference  pointer  terhadap  pointer  yang
                      bertipe void.

                      7.5.  Pointer dan Array

                      Sebagai  programmer  C,  Anda  harus  mengetahui  bahwa  pointer  dan  array  adalah  dua
                      buah hal yang saling berhubungan. Untuk menerangkan hal ini, anggaplah kita memiliki
                      array  A  yang  terdiri  dari  10  buah  elemen  yang  bertipe  int  serta  pointer  P  yang  akan
                      menunjuk ke tipe int. Sekarang apabila kita mengeset pointer tersebut untuk menunjuk  ke
                      elemen  pertama array,  maka  kita  dapat  mengakses elemen-elemen  dari array  A tersebut
                      dengan  menggunakan  pointer  P.  Perhatikan  sintak  berikut  ini.


                      /* Mendeklarasikan array A dengan 10 buah elemen bertipe int */
                      int A[10];

                      /* Mendeklarasikan pointer P dan mengesetnya untuk menunjuk ke
                          alamat dari A[0] */
                      int *P = &A[0];  /* bisa ditulis dengan int *P = A */



                      Melalui  sintak  di  atas  kita  dapat  melakukan  pengaksesan  elemen  array  dengan
                      menggunakan A[0], A[1], A[2], …, A[9] atau dengan cara *P, *(P+1), *(P+2), …,
                      *(P+9). Situasi ini dapat direpresentasikan melalui cara seperti berikut.

                                         P
                                      •


                                             A[0]   A[1]   A[2]   A[3]   …    A[9]


                                             P+1                  P+2

                                              Gambar 7.4. Hubungan Pointer dan Array

                      Dari gambar tersebut dapat kita simpulkan bahwa apabila P = &A[0], maka P+1 = &A[1],
                      P+2  =  &A[2]  dan  seterusnya.  Di  sini  kita  melakukan  operasi  aritmetika terhadap
                      pointer  P  (dalam  hal  ini  operasi  penjumlahan),  proses  seperti  ini  dinamakan  dengan
                      aritmetika pointer.

                      Untuk membuktikan hal tersebut, berikut ini contoh program yang akan menunjukkan
                      hubungan antara pointer dan array. Adapun sintaknya adalah seperti berikut.

                                                          152
   151   152   153   154   155   156   157   158   159   160   161