Page 153 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 153

*( (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.
   148   149   150   151   152   153   154   155   156   157   158