Kamis, 20 November 2014

Konsep dan pengertian pointer

Konsep dan pengertian pointer


Pointer adalah variabel, namun berbeda dengan variabel normal. Pointer menyimpan alamat pada memori, bukan nilai yang kita masukkan. Perhatikan contoh berikut.

Contoh 9.20. Mendeklarasikan pointer.

#include <iostream>

using namespace std;

int main() {
long *Alamat;
long X;

Alamat = &X;
X = 5; // Mengisikan nilai 5 ke dalam variabel X

cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;

*Alamat = 20; // Mengisikan nilai 20 ke dalam *Alamat

cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;

return 0;
}

Pada contoh di atas, kita deklarasikan variabel alamat sebagai pointer dengan menambahkan tanda * di depan nama variabel. Jika kita tidak menggunakan tanda *, berarti variabel tersebut akan berfungsi seperti variabel normal. Variabel X kita deklarasikan sebagai variabel normal dengan tipe data long. Perhatikan pada baris Alamat = &X. Baris ini menyatakan bahwa variabel Alamat (bukan pointer) akan diisi dengan nilai dari alamat X. Tanda & di depan nama variabel berarti kita menginginkan nilai alamat memorinya yang kita gunakan dan bukan nilainya. Apabila kita eksekusi programnya, maka tampilannya akan tampak seperti pada gambar 9.4.


Perhatikan nilai-nilai output pada gambar 9.4. Nilai seperti 0x22ff88 adalah angka hexadesimal dari alamat variabel. Kalau kita amati, ketika kita memasukkan nilai 5 pada variabel X, maka variabel *Alamat akan berisi juga nilai 5. Demikian juga ketika kita memasukkan nilai 20 pada variabel *Alamat, nilai X juga berubah menjadi 20. Hal ini karena variabel *Alamat dan X menempati alamat memori yang sama.

Setiap kali kita mendeklarasikan sebuah pointer, maka otomatis pointer akan menunjuk alamat acak pada memori. Oleh karena itu, kita harus mengeset variabel pointer tersebut agar tidak menunjuk alamat tertentu dengan cara memberi nilai NULL. Perhatikan contoh kode berikut dan hasil eksekusinya (gambar 9.5).

Contoh 9.21. Mendeklarasikan pointer dengan NULL.

#include <iostream>

using namespace std;

int main() {

long *Alamat;
long *Alamat1;

Alamat = NULL;

cout<<"Alamat memori yang ditunjuk dengan NULL :
"<<Alamat<<endl;
cout<<"Alamat memori yang ditunjuk tanpa NULL :
"<<Alamat1<<endl;

return 0;
}



Halaman Terkait:
| Pointer dan array | Penggunaan new dan delete pada pointer | Array |

Tidak ada komentar:

Posting Komentar