pint
0xfff4 0xfff2
menunjuk ke kint
alamat
kint
0xfff2
MENGETAHUI ALAMAT SUATU
VARIABEL
Alamat suatu variabel dapat diketahui dengan mudah,
caranya tambahkan operator alamat, berupa simbol & di
depan nama variabel.
Dengan mengirimkan ke cout, alamat dari suatu variabel
akan ditampilkan ke layar.
MENGETAHUI ALAMAT SUATU
VARIABEL
//program75.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int bil1 = 5;
float bil2 = 7.5;
double bil3 = 17.777;
cout<<endl;
cout<<"Alamat variabel : "<<endl;
cout<<"bil1 = "<<&bil1<<endl;
cout<<"bil2 = "<<&bil2<<endl;
cout<<"bil3 = "<<&bil3<<endl;
getch();
}
MENGETAHUI ALAMAT
SUATU VARIABEL
Perlu diketahui, notasi 0x pada hasil program di
depan menyatakan notasi heksadesimal.
Pada C++, tanda & juga dipakai untuk referensi (alias
dari suatu variabel).
MENDEFINISIKAN VARIABEL POINTER
Format :
tipe_data *nama_variabel
tipe_data dapat berupa sembarang tipe data seperti
halnya variabel bukan pointer.
nama_variabel adalah variabel pointer.
MENGISI VARIABEL POINTER
Supaya variabel pointer menunjuk ke variabel lain, mula-mula harus
diisi dengan alamat dari variabel yang hendak ditunjuk.
Misalnya terdapat pendefinisian seperti berikut :
pint = &kint;
Pernyataan diatas berarti : “pint diisi dengan alamat dari kint”.
MENGISI VARIABEL POINTER
//program76.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int kint = 55;
int *pint;
cout<<"pint = "<<pint<<endl;
Baris tersebut ternyata menampilkan isi dari pointer itu
sendiri, bukan isi dari variabel kint.
MENGAKSES NILAI YANG
DITUNJUK POINTER
Berdasarkan contoh di depan, nilai dari kint dapat
diakses melalui pint setelah pernyataan dibawah ini
dijalankan.
pint = &kint;
Cara mengaksesnya adalah dengan melibatkan operator
“tak langsung” yang berupa simbol * dan diletakkan di
depan nama variabel pointer. Contoh :
*pint;
Berarti “nilai yang ditunjuk oleh pint”.
MENGAKSES NILAI YANG
DITUNJUK POINTER
//program77.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int kint = 55;
int *pint;
pint = &kint; //pointer menunjuk ke kint
void main()
{
int kint = 55;
int *pint;
pint = &kint; //pointer menunjuk ke kint
void *ptr;
//program79.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int bil1 = 55;
float bil2 = 33.45;
void *ptr;
*(int*)ptr
*(float*)ptr
Ini disebabkan C++ tidak tahu maksud *ptr mengingat
//program80.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int bilangan = 55;
void *ptr;
ptr = &bilangan;
cout<<"bilangan semula : "<<bilangan<<endl;
*(int*)ptr = 77; //mengubah nilai bilangan melalui ptr
cout<<"bilangan sekarang : "<<bilangan<<endl;
getch();
}