Alasan mengapa harus menggunakan pointer yang utama adalah untuk menyimpan alamat memori dari sebuah variabel (data type atau object dari class). Selain menyimpan alamat dari variabel, pointer juga dapat digunakan untuk menyimpan alamat dari sebuah fungsi (function pointer).

Function pointer telah digunakan sejak dikenalkannya bahasa C,dan banyak digunakan untuk sebuah fungsi callback atau untuk meningkatkan readability dari sebuah code

Anda dapat memperlakukan function pointer seperti pointer biasa (pointer ke datatype/object), anda dapat menyimpan,mengirimkan, merubah address, atau meng-evaluasi address dari pointer ke fungsi ini dengan sifat tambahan anda dapat memanggil fungsi yang ditunjuk oleh function pointer.

Atau bisa juga pointer berguna untuk :
1. Mengirimkan “Parameter yang berupa variabel” ke dalam fungsi, artinya nilai
variabel bisa diubah di dalam fungsi

2. Untuk membuat variabel DINAMIS (Bukan variabel Statis)

penggunaan function pointer pada C++ dibatasi, yaitu function pointer tidak boleh menunjuk pada function yang berada dalam sebuah class (class member function) kecuali function tersebut berjenis static.

Mengapa sih harus menggunakan POINTER dalam bahasa C++ …??? Karena dapat meningkatkan kinerja untuk operasi yang dilakukan secara berulang.
dengan syarat Kalau mendeklarasikan pointer kedalam array, tidak boleh menggunakan tanda bintang

Operator yang digunakan untuk pointer adalah tanda “*” dan tanda “&”.
tanda “*” ini berfungsi sebagai penunjuk nilai dari suatu pointer sedangkan tanda
“&” digunakan sebagai penunjuk alamat dari suatu variable.
Pointer di gunakan untuk mengalokasikan tempat pada memori secara dinamis yakni dapat diubah-ubah alokasi tempatnnya pada memori.
data yang dimasukkan sebagai nilai pointer akan selalu tersimpan sehingga diperlukan penghapusan yang tujuannya untuk mengosongkan memori, perintah yang digunakan untuk menghapus memori adalah delete [] nama variable.

*Operasi pointer dapat diterapkan pada tipe data Array,tipe data Struck,
*Pointer dapat digunakan untuk mengakses elemen array
*Pointer dapat menunjuk alamat pointer lain.

Cara Penggunaan function Pointer

pada contoh ini akan diperlihatkan contoh penggunaan function pointer untuk membuat sebuah mekanisme callback, pada contoh ini kita membuat sebuah fungsi pembagi dengan op1/op2, dimana kita harus mencegah op2=0

int bagi(int op1,int op2,bool (*fpTest)(int op1,int op2))
{
if(fpTest != NULL)
{
if(fpTest(op1,op2) == false)return -1;
}
return op1/op2;
}

bool Verifier(int op1,int op2)
{
if(op2==0)
{
printf(“\nerror:Operand2 berisi 0 mengakibatkan division by zero”);
return false;
}
if(op1