Pointer
Pointer Saat komputer melakukan suatu perhitungan atau operasi, data akan disimpan di suatu tempat pada memory Address: informasi yang menunjukkan dimana data itu berada dalam memory Pointer: variabel khusus untuk menyimpan address int x; x =100; 100 1000 157 1001 Akses ke address x dengan &x cout<<&x; 200 1002 1003 1004 1005 memory address
Deklarasi Pointer Deklarasi pointer: tipe_data *nama_pointer; Contoh: int *ptr; char *ptr; Cara penulisan berikut diperbolehkan: int * ptr; int* ptr;
Inisialisasi Pointer Pointer bertugas menyimpan address, yang harus diset oleh programmer Cara inisialisasi Substitusikan address sebuah variabel ke pointer dengan memakai address operator & int x; int *ptr; ptr = &x; Mensubstitusikan address awal sebuah array ke pointer char t[5]; char *ptr; ptr = t;
Inisialisasi Pointer Cara inisialisasi (lanjutan) Mensubstitusikan address salah satu elemen array dengan address operator char t[5]; char *ptr; ptr = &t[3]; Mensubstitusikan address awal character string ke pointer char ptr = ”jakarta” Mensubstitusikan NULL pada pointer. NULL ada pointer kosong, menunjukkan suatu status dimana pointer itu belum diinisialisasikan dengan sebuah address tertentu. Memakai fungsi MALLOC
Latihan 2-1 #include <iostream> using namespace std; int main(void) { int x; int *y; cout<<"masukkan nilai untuk x \n"; cout<<"x: "; cin>>x; cout<<"x: "<<x<<endl; cout<<"address x : "<<&x<<endl; cout<<"Address x dimasukkan ke y \n"; y=&x; cout<<"y berisi address "<<y<<endl; cout<<"isi *y :"<<*y; return 0; }
Latihan 2-2 #include <iostream> using namespace std; int main() { int aa,bb; int *pt; aa = 123; pt = &aa; bb = *pt; cout<<"aa="<<aa<<" &aa="<<&aa<<" *pt="<<*pt<<" bb="<< bb<<endl; pt = &bb; *pt = 999; cout<<"aa="<<aa<<" &bb="<<&bb<<" *pt="<<*pt<<" bb="<< bb<<endl; return 0; }
address memory pt 1000 aa 123 1000 pt = &aa = 1000 1001 bb 123 1000 pt = &aa = 1000 bb = *pt = isi address 1000 = 123 1001 1002 1003 1004 1002 address memory
address memory pt 1000 aa bb 123 1000 pt = &aa = 1000 bb = *pt = isi address 1000 = 123 1001 123 1002 1003 1004 1002 address memory
address memory pt 1002 aa bb 123 1000 pt = &bb = address bb = 1002 1001 123 1002 1003 1004 1002 address memory
address memory pt 1002 aa bb 123 1000 pt = &bb = address bb = 1002 1001 999 1002 1003 1004 1002 address memory
OPERATOR POINTER Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&) Contoh : int y = 5; int *yPtr; Maka pernyataan yPtr = &y; Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yPtr. Contoh program operator pointer : #include <iostream> using namespace std; int main() { int *ptr, num; // 1 ptr = # // 2 *ptr = 100; // 3 cout << num << " "; (*ptr)++; // 4 (*ptr)*2; // 5 cout << num << "\n "; return 0; }