Page 167 - Project Akhir Media Pendidikan
P. 167

printf(“Nilai **B \t\t = %c\n”, **B);
                         return 0;
                      }
                      Program di atas akan memberikan hasil sebagai berikut.


                      Nilai a                    = A
                      Alamat a                   = 0073FDE7

                      Alamat yang ditunjuk P     = 0073FDE7
                      Alamat P                   = 0073FDE0
                      Nilai *P                   = A

                      Alamat yang ditunjuk B     = 0073FDE0
                      Alamat B                   = 0073FDDC
                      Nilai *B                   = 0073FDE7
                      Nilai **B                  = A


                      Apabila  Anda  perhatikan  secara  teliti  hasil  dari  program  di  atas,  maka  Anda  dapat
                      menyimpulkan bahwa nilai dari variabel a (yaitu karakter ‘A’) dapat kita akses melalui
                      pointer P dengan cara menuliskan *P dan dengan menggunakan pointer B dengan cara
                      menuliskan **B. Sedangkan alamat dari variabel a  (yaitu 0073FDE7), dapat kita akses
                      melalui perintah &a, P ataupun *B. Hal ini menunjukkan bahwa pointer B bukanlah pointer
                      yang menunjuk ke alamat dari sebuah variabel dengan tipe char, melainkan pointer yang
                      menunjuk ke alamat dari pointer P. Sebagai bukti dari pernyataan tersebut adalah pada saat
                      kita melakukan dereference pointer pada pointer B  (yaitu dengan menuliskan *B), maka
                      nilai  yang  didapatkan  bukanlah  sebuah  nilai  bertipe  karakter,  melainkan  sebuah  alamat
                      memori (yaitu alamat yang ditunjuk oleh pointer P atau alamat dari variabel a).

                      Apabila  kita  amati,  contoh  yang  kita  ambil  di  atas  sebenarnya  dapat  dikatakan  sebagai
                      pointer  ke  string.  Pasalnya  kita  telah  mendeklarasikan  pointer  ke  tipe  char*  (string).
                      Sebagai bahan tambahan bagi Anda untuk dapat benar-benar memahami konsep dari pointer
                      ke  pointer,  berikut  ini  akan  disajikan  sebuah  contoh  program  lagi  dimana  di  dalamnya
                      terdapat deklarasi pointer ke pointer (dalam hal ini pointer ke string). Sebelumnya ingat
                      kembali bahwa string adalah array dari karakter, sedangkan array sebenarnya adalah pointer,
                      maka dari itu kita dapat  menuliskan sintak seperti  berikut.


                      #include <stdio.h>

                      int main(void) {

                         /* Mendeklarasaikan array dari karakter (disebut dengan
                            string) */
                         char S[] = “Arista”;

                         /* Mendeklarasikan pointer ke tipe char */
                         char *P = S;         /* Pointer P menunjuk ke array S[0], dapat



                                                          163
   162   163   164   165   166   167   168   169   170   171   172