POINTER
Pengertian POINTER/penunjuk adalah variabel yang menyimpan atau menunjuk suatu alamat memori dan bukannya menyimpan suatu nilai.
Operator Pointer Ada dua, yaitu & (ampersand) * (asterisk)
Operator & & merupakan operator alamat Pada saat pendeklarasian variabel, user tidak diharuskan menentukan lokasi sesungguhnya pada memori. Hal ini akan dilakukan secara otomatis oleh kompiler dan operating sistem pada saat tun-time. Jika ingin mengetahui dimana suatu variabel akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) di depan variabel yang berarti “address of”
int toko= 12 ; //pemberian nilai awal Contoh int toko= 12 ; //pemberian nilai awal int x= &toko ; //memberikan nilai x dengan alamat dari variabel toko Karena variabel toko diberi awalan &, maka yang diambil adalah alamat dari variabel toko, bukan isi/nilai variabel toko.
Operator * * merupakan operator reference Dengan menggunakan pointer, kita dapat mengakses nilai yang telah tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer yang berarti “value pointer by”
Contoh: int toko= 12 ; int x= &toko ; Int isi= *x; dapat dikatakan “variabel isi sama dengan nilai yang ditunjuk oleh x” sehingga nilai dari variabel isi = 12
Contoh program #include <iostream.h> #include <conio.h> main(){ int x; int y; int *px; //pointer yang menunjuk objek x = 25; //pemberian nilai px = &x; // px berisi alamat dari x y = *px; // y berisi nilai yang ditunjuk px cout<<"isi x = "<< x <<"\n\n"; cout<<"alamat x = "<< &x <<"\n\n"; cout<<"isi px = "<< px <<"\n\n"; cout<<"isi *px = "<< *px <<"\n\n"; cout<<"nilai y = "<< y <<"\n\n"; cout<<"nilai *(&x) = "<< *(&x) <<"\n\n"; getch();}
kerjakan #include <iostream.h> #include <conio.h> main(){ int nangka; int kelapa; int *pisang; pisang = &kelapa; kelapa = 200; nangka = *pisang; } Pertanyaan: Isi dari &kelapa Isi dari kelapa Isi dari nangka Isi dari pisang Isi dari *(&kelapa)