Mengakses dan Mengubah isi Pointer

448 Direktorat Pembinaan SMK | 2008 using namespace std; main { float d = 54.5f , pd; cout Isi d mula‐mula = \n d; pd = d; pd += 10 ; cout Isi d sekarang = \n d; getch; return ; } Program 13.11 include conio.h include iostream using namespace std; main { int i1, i2, p1, p2; i1 = 9 ; p1 = i1; i2 = p1 2 ‐ 2 3 ; p2 = p1; cout i1= i1; cout i2= i2; cout p1= p1; cout p2= p2; getch; return ; } Program 13.12 include conio.h include iostream using namespace std; main { 2008 | Direktorat Pembinaan SMK 449 int count = 10 , temp, sum = 7 ; temp = count; temp = 32 ; temp = sum; temp = count; sum = temp 4 ; cout count = d, temp = d, sum = d\n counttemp sum; getch; return ; } Program 13.13 include conio.h include iostream using namespace std; main { int count = 13 , sum = 9 , x, y; x = count; x = 27 ; y = x; x = sum; x = count; sum = x 2 3 ; cout count = d, sum = d, x = d, y = d\n countsumxy; getch; return ; } Program 13.14 include conio.h include iostream using namespace std; int r, q = 7 ; int go_crazyint , int ; main { int ptr1 = q; int ptr2 = q; 450 Direktorat Pembinaan SMK | 2008 r = go_crazyptr1, ptr2; cout q = d, r = d, ptr1 = d, ptr2 = d\n q rptr1ptr2; ptr2 = r; go_crazyptr2, ptr1; cout q = d, r = d, ptr1 = d, ptr2 = d\n q r ptr1 ptr2; } int go_crazyint p1, int p2 { int x = 5 ; r = 12 ; p2 = p1 2 ; p1 = x; return p1 3 ; }

13.6. Array dan Pointer

Pada bahasan ini programer perlu mengerti perbedaan antara pointer dengan array. Keduanya menggunakan memori yang lokasinya ditentukan, dimana Identifier suatu array equivalen dengan alamat dari elemen pertama, sedangkan pointer equivalen dengan alamat elemen pertama yang ditunjuk. Perhatikan deklarasi veriabel sebagai berikut : int numbers [20]; int p; maka deklarasi dibawah ini juga benar : p = numbers; dan numbers equivalen, dan memiliki sifat properties yang sama. Perbedaannya, user dapat menentukan nilai lain untuk pointer p dimana numbers akan selalu menunjuk nilai yang sama seperti yang telah didefinisikan. p, merupakan variable pointer, numbers adalah constant pointer. Karena itu walaupun instruksi diatas benar, tetapi tidak untuk instruksi dibawah ini : numbers = p; karena numbers adalah array constant pointer, dan tidak ada nilai yang dapat diberikan untuk identifier konstant constant identifiers. Perhatikan program dibawah ini: Program 13.15 include conio.h include iostream using namespace std; 2008 | Direktorat Pembinaan SMK 451 int main { int numbers[ 5 ]; int p; p = numbers; p = 10 ; p++; p = 20 ; p = numbers[ 2 ]; p = 30 ; p = numbers + 3 ; p = 40 ; p = numbers; p+ 4 = 50 ; for int n= ; n 5 ; n++ cout numbers[n] , ; getch; return ; } Program tersebut setelah dieksekusi maka akan mendapatkan keluaran sebagai berikut: Output : 10, 20, 30, 40, 50,

13.6.1. Pointer dan Array pointer to array