Minggu, 27 November 2016

Pointer

Pointer


Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.
Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh, jika
sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel
kedua.
Operator Pointer
Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.


Operator &


Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak
diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara
otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana
suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&)
didepan variable , yang berarti "address of". Contoh :


andy=75;
ted =&andy;
beth = *ted;


Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena
variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah
alamat dalam memory, bukan isi variable.


Operator *


Operator * merupakan operator reference. Dengan menggunakan pointer, kita dapat mengakses
nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada
identifier pointer, yang berarti "value pointed by". Contoh :


andy=75;
ted =&andy;
beth = *ted;


(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted
dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.


Contoh pointer :

#include <iostream>
using namespace std;
int main()
{
cout<<" operasi penugasan \n\n";
int *x, y, *z;
y = 689;
x = &y; //Alamat dari y disalin ke variabel x1
z = x; //Isi variabel x1 disalin ke variabel x2
cout<<"Nilai variabel y = "<<y<< " ada di alamat "<< x<<"\n";
cout<<"Nilai variabel y = "<<y<< " ada di alamat "<< z<<"\n";
return 0;
}



#include <iostream>
using namespace std;
int main()
{
cout<<" operasi aritmatika \n\n";
int nilai[3], *penunjuk;
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
cout<<" nilai "<<*penunjuk <<" ada di alamat memori " <<penunjuk<<"\n";
cout<<" nilai "<<*(penunjuk+1) <<" ada di alamat memori " <<penunjuk+1<<"\n";
cout<<" nilai "<<*(penunjuk+2) <<" ada di alamat memori " <<penunjuk+2<<"\n";
return 0;
}



Tidak ada komentar:

Posting Komentar