Page 164 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 164

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
   159   160   161   162   163   164   165   166   167   168   169