Pointer
Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk
alamat suatu lokasi memori tertentu. Jadi pointer tidak berisi nilai
data, melainkan berisi suatu alamat memori. Lokasi memori tersebut bisa
diwakili sebuah variabel atau juga berupa alamat memori secara langsung.
Operator Pointer
Ada dua operator yang digunakan pada tipe data pointer yaitu:
1. Operator Deference (&)
Operator ini biasanya disebut dengan address of atau operator alamat.
Dengan menggunakan operator deference (&) ini, suatu variabel akan
menghasilkan alamat memori.
Contoh:
int x = 45; cout << &x;
Pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.
2. Operator reference (*)
Operator ini biasanya disebut value pointed by. Dengan menggunakan
operator ini, kita dapat mengakses secara langsung nilai yang terdapat
pada suatu alamat memori.
Contoh:
int x = 45; cout <<*&x;
Pada program di atas, akan ditampilkan nilai dari alamt memori &x.
Mendeklarasikan Variabel Pointer
tipe_data *nama_variabel
- tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
- nama_variabel adalah nama variabel pointer.
Pointer Pada Pointer
Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk ke pointer lainnya. Dalam pendeklarasiannya, kita tambahkan pointer reference (*) pada variabel yang akan ditunjuk.
Contoh:
int x; int *px; //pointer ke variabel int **ppx; //pointer pada pointer x = 100; px = &nama; ppx = &pNama;
Pointer Pada Array
Pada Array/Larik, pointer hanya perlu menunjukan alamat elemen pertama
saja karena alamat array dalam memori sudah disusun secara berurutan.
Contoh:
int a[] = {76, 67, 88, 98}; int *pa; pa = a;
Pernyataan pa=a artinya pointer pa menyimpan alamat array a, yang
alamatnya diwakili alamat elemen pertama, yaitu a[0]. Kita juga bisa
mengganti perintah pa=a dengan pa=&a[0]. Untuk pembacaan semua
elemen array dengan pointer, bisa menggunakan perulangan seperti pada
penggalan program berikut.
Pointer pada string dapat anda lihat pada contoh program berikut:
for (int i=0; i < 4; i++) { cout << *pa << " "; pa++; }
Pointer pada String
#include <iostream.h> #include <conio.h> #define MAX 5 void main() { char nama[] = "Albert Einstein"; char *pNama = nama; cout << "Nama = " << nama << endl; cout << "pNama = " << pNama << endl; pNama += 7; cout << "\nSetelah pNama += 7" << endl; cout << "Nama = " << nama << endl; cout << "pNama = " << pNama << endl; getch(); }
0 komentar:
Posting Komentar