Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer tertentu. Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double atau single, dan bahkan tipe-tipe data lain yang didukung oleh Bahasa C. variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat lebih fleksibel.
Bentuk umum dari pendeklarasian variabel yang bertipe pointer adalah:
Tipe_data *nama_pointer; //atau
Tipe_data * nama_pointer; //atau
Tipe_data* nama_pointer;
Tipe data diatas berguna untuk menyatakan bahwa pointer yang kita deklarasikan tersebut akan ditempati oleh data yang bertipe tertentu. Sebagai contoh kita akan mendeklarasikan pointer A yang akan ditempati oleh tipe data long, maka bentuk pendeklarasian adalah sebagai berikut:
Long *A; //mendeklarasikan pointer A menunjuk ke tipe Long Integer.
Memasukkan Nilai pada Pointer
Nilai yang dimaksud tentu berupa alamat, bukan berupa nilai data. Walaupun tampak mudah tapi kita juga harus berhati-hati dalam melakukan hal ini. Perlu diperhatikan bahwa tipe data dari pointe4r harus sama dengan tipe data dari variabel yang akan menempatinya
Contoh pendeklarasian
Double A;
Int X; //mendefinisikan variabel bertipe int
A= &X; /*salah, karena A hanya menyimpan alamat dari variabel-variabel yang bertipe double saja*/
Menggunakan kata kunci New
Untuk mengalokasikan memori pada ruang yang masih kosong menggunakan kata kunci New. Kata kunci ini akan diikuti oleh tipe data yang akan dialokasikan sehingga kompiler akan mengetahui seberapa besar ruang memori yang dibutuhkan untuk proses pengalokasian tersebut.
Pada saat mengalokasikan memori, alamat memori yang dialokasikan tersebut akan disimpan ke pointer, sehingga sebelumnya harus dideklarasikan terlebih dahulu. Struktur prnulisan penggunaan kata kunci New dalah sebagai berikut:
Nama_Paointer = New Tipe_Data;
Contoh program Pointer:
Program 1:
source code:
#include <iostream>
using namespace std;
int main(){
int x;
int A;
x = 20;
A = x;
cout<<"Nilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<A<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<A<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&A<<endl;
A = 30;
cout<<"\n\n\nNilai X \t\t: "<<x<<endl;
cout<<"Alamat X (&X) \t\t: "<<&x<<endl<<endl;
cout<<"Nilai yang ditunjuk *P\t: "<<A<<endl;
cout<<"Alamat yang ditunjuk *P\t: "<<A<<endl;
cout<<"Alamat *P (&P) \t\t: "<<&A<<endl;
return 0;
}
Hasil output program:
Program 2:
source code:
#include<iostream>
const int array=5;
using namespace std;
int main(){
int a[array];
const int *pint=a;
for(int i=0; i<array; i++){
cout<<"input array :"; cin>>a[i];
}
for(int n=0; n<array; n++){
cout<<"element ["<<n<<"]="<<*(pint)<<endl;
pint++;
}
}
hasil output:
program 3:
source code:
#include<iostream>
using namespace std;
int main (){
char array[5];
char *p;
p=array;*p='a';
p++; *p='b';
p=&array[2]; *p='c';
p=array+3; *p='d';
p=array; *(p+4)='e';
for(int n=0; n<5; n++){
cout<<array[n]<<", ";
}
}
hasil output:
0 Post a Comment: