Pointer dan Reference (Bab 6)
Variabel pointer Pointer adalah variabel yang menyimpan alamat memori (bukan sebuah nilai) Alamat variabel didapatkan dengan menggunakan operator &, contoh &X Contoh: long *P; pointer P yang akan ditempati oleh tipe data long
Contoh: memerintahkan P untuk menunjuk alamat dari variabel X (menyimpan alamat dari variabel X kedalam pointer P) long X; long *P; P = &X; // keduanya menyimpan alamat Mengisikan nilai ke dalam alamat yang disimpan oleh pointer P P = X; //salah *P = X; //benar, keduanya //menyimpan nilai
Tipe data dari pointer harus sama dengan tipe data dari variabel yang akan menempatinya Contoh: long *P; long X; P = &X; Untuk membuat pointer menunjuk ke semua tipe data dibuat void pointer (pointer tanpa tipe) Contoh: void *P;
Untuk inisialisai pointer P dengan NULL: P = NULL; Konstanta pada pointer const int *P1; nilai yang tetap, bukan alamat yang tetap int * const P2 = &X; P2 menunjuk ke alamat yang tetap, yaitu alamat X, nilai *P2 dapat diubah.
Konstanta pada pointer const int * const P3 = &X; P2 menunjuk ke alamat yang tetap, yaitu alamat X, nilai *P3 juga tetap. Pointer ke pointer int X=25; int *P1; int **P2; P1 = &X; P2 = &P1; Output: *P1 = 25; *P2 = 0065FE03; **P2 = 25; P1 = 0065FE03; P2 = 0065FDFC;
Pointer Aritmetika Contoh: Array A[0]=100, A[1]=200, A[2]=300, A[3]=400, dan A[4]=500 int A[5]={100,200,300,400,500}; int *P; P = &A[0]; //*P = 100 P = P + 2; //*P = 300 P = P - 1; //*P = 200