Page 166 - Project Akhir Media Pendidikan
P. 166

B                           P                           a
                                  …                           …                               …




                                                   Gambar 7.6. Pointer ke pointer

                      Kejadian seperti ini sering dinamakan dengan istilah multiple indirection. Adapun cara
                      untuk mendeklarasikan sebuah pointer ke pointer adalah dengan menambahkan tanda
                      asterisk (*) sebanyak dua kali di depan nama pointer yang akan dideklarasikan. Berikut
                      ini bentuk umumnya.

                        tipe_data **nama_pointer;


                      Untuk lebih memperjelas pembahasan mengenai materi ini, di sini kita akan membuat
                      program  yang  didalamnya  terdapat  pendeklarasian  sebuah  pointer  ke  pointer  yang
                      sedang menunjuk ke alamat dari variabel lain. Adapun contoh sintaknya adalah sebagai
                      berikut.


                      #include <stdio.h>

                      int main() {

                         /* Mendeklarasikan variabel a bertipe char dan pointer P yang


                            akan menunjuk ke tipe char */

                         char a, *P;

                         /* Mendeklarasikan pointer B untuk menunjuk ke alamat dari ke
                            pointer P */
                         char **B;

                         a = ‘A’;
                         P = &a;
                         B = &P;

                         /* Menampilkan nilai yang dikandung di dalam variabel a,
                            pointer P dan B */
                         printf(“Nilai a \t\t = %c\n”, a);
                         printf(“Alamat a \t\t = %p\n\n”, &a);

                         printf(“Alamat yang ditunjuk P \t = %p\n”, P);
                         printf(“Alamat P \t\t = %p\n”, &P);
                         printf(“Nilai *P \t\t = %c\n\n”, *P);

                         printf(“Alamat yang ditunjuk B \t = %p\n”, B);
                         printf(“Alamat B \t\t = %p\n”, &B);
                         printf(“Nilai *B \t\t = %p\n”, *B);


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