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 dua, yaitu :
·
Operator &
Operator
& bersifat unary (hanya memerlukan satu operand saja).
Operator
& menghasilkan alamat dari operandnya.
·
Operator *
Operator
* bersifat unary (hanya memerlukan satu operand saja).
Operator
* menghasilkan nilai yang berada pada sebuah alamat.
Deklarasi
Pointer
Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Bentuk
Umum : Tipe_data *nama_pointer;
Contoh Program :
#include <constream.h>
int *px;
char *sh;
void main()
{
int x, y; /* x dan y
bertipe int */
int *px; /* px pointer
yang menunjuk objek */
clrscr();
x = 87;
px = &x; /* px berisi
alamat dari x */
y = *px; /* y berisi
nilai yang ditunjuk px */
cout<<“Alamat x
=”<<&x <<\n”;
cout<<“Isi px =
\n”, px);
cout<<“Isi x = \n”,
x);
cout<<“Nilai yang
ditunjuk oleh px = \n”, *px);
cout<<“Nilai y =
\n”, y);
getch();
}
Operasi
Pointer
·
Operasi Penugasan
Suatu variable pointer
seperti halnya variable yang lain, juga bisa mengalami operasi penugasan. Nilai
dari suatu variable pointer dapat disalin ke variable pointer yang lain.
Contoh Program :
#include <constream.h>
void main()
{
float *x1,y, *x2;
clrscr();
y = 13.45;
x1 =
&y;
/* Alamat dari y disalin ke variabel x1 */
x2 = x1;
/*
Isi variabel x1 disalin ke variabel x2 */
cout<<"Nilai variabel y = "<<y<< " ada di alamat
"<< x1<<"\n";
cout<<"Nilai variabel y = "<<y<< " ada di alamat
"<< x2<<"\n";
getch();
}
·
Operasi Aritmatika
Suatu variabel pointer
hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi
yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi
penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya)
dalam memori. Begitu juga operasi pengurangan.
Contoh Program :
#include <constream.h>
void main()
{
int nilai[3], *penunjuk;
clrscr();
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";
getch();
}
·
Operasi Logika
Suatu pointer juga dapat dikenai operasi
logika.
Contoh
Program :
#include<constream.h>
void main()
{
int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
cout<<"nilai pa= "<<pa<< "
nilai pb= "<<pb<<"\n";
if(pa < pb)
cout<<"pa menunjuk ke memori lebih rendah dari
pb\n";
if(pa == pb)
cout<<"pa menunjuk ke memori yang sama dengan
pb\n";
if(pa > pb)
cout<<"pa menunjuk ke memori lebih tinggi dari
pb\n";
getch();
}
02.14
0 komentar:
Posting Komentar