Langsung ke konten utama

POINTER

Terdapat dua jenis variabel menurut kebutuhan program untuk menyimpan data, yaitu variabel statis dan variabel dinamis. Variabel statis adalah variabel yang harus dipesan dahlu sebelum digunakan dan banyaknya tidak dapat diubah saat program dieksekusi. Variabel dinamis adalah variabel yang dapat dipesan (dibuat) saat dibutuhkan waktu program dieksekusi, namun dapat pula dihancurkan (atau dikembalikan ke sistem operasi) saat tidak dibutuhkan.
Cara mendeklarasikan variabel dinamis cukup menambahkan tanda * di antara tipe data dan nama variabelnya. Sebagai contoh :
int *P;
adalah pernyataan yang mendeklarasikan variabel pointer yang menunjuk data yang bertipe int. Data ini bisa saja ditandai oleh variabel statis.
int x = 5;
Pernyataan P = &x; berarti bahwa pointer P digunakan untuk menunjuk data bertipe int yaitu 5 yang disimpan pada variabel x.
Dalam penggunaannya, variabel dinamis dapat menunjuk ke manapun, asal tipe data yang ditunjuk sesuai dengan tipe pointer ketika dideklarasikan. Tentu saja kita tidak bisa pernyataan :
char C = ‘x’; P = &C;
akan merupakan pernyataan yang tidak valid, oleh karena variabel C menyimpan data bertipe char, sadangkan P adalah pointer yang menunjuk data bertipe int.

Program di bawah ini memberikan cara memindahkan pointer :

#include <iostream>
using namespace std;

int main() {
int A = 5;
int B = 3;
cout << "Nilai A : " << A << endl;
cout << "Nilai B : " << B << endl;
int *Pa = &A;
cout << "Nilai yang ditunjuk pointer Pa (var. A) : " << *Pa << endl;
int *Pb = &B;
cout << "Nilai yang ditunjuk pointer Pb (var. B) : " << *Pb << endl;
Pa = Pb; // ekivalen dengan Pa = &B
cout << "Setelah tugas Pa diubah : \n";
cout << "Nilai yang ditunjuk pointer Pb (var. B) : " << *Pb << endl;
cout << "Nilai yang ditunjuk pointer Pa (var. B) : " << *Pa << endl;
}


Komentar