BAB POINTER
POINTER
Pengertian :
Pointer : variabel yang berisi alamat
memori.
Bentuk Umum :
Type *variable name;
Ket :
Type adalah tipe dasar pointer
Variable name adalah nama variabel pointer
Tanda * adalah operator memori untuk mengembalikan nilai variabel
pada alamatnya yang ditentukan oleh operand.
OPERATOR POINTER
Operator Pointer
Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&)
Contoh :
int y = 5;
int *yPtr;
Maka pernyataan
yPtr = &y;
Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yPtr.
Contoh program operator pointer :
//Program :pointer2. cpp
#include <iostream.h>
Int main()
{
int *ptr, num; // 1
ptr = # // 2
*ptr = 100; // 3
cout << num << ;
(*ptr)++; // 4
cout << num << ;
(*ptr)*2; // 5
cout << num << \n ;
return 0;
}
Bila dijalankan hasilnya adalah sebagai berikut :
100 101 101
DEKLARASI POINTER
Bentuk umum deklarasi pointer adalah :
Tipe_data *nama_pointer;
Aturan dari deklarasi pointer :
-Variabel pointer dapat dideklarasikan dengan tipe data
apapun.
-Pendeklarasian variabel pointer dengan tipe data tertentu
digunakan untuk menyimpan alamat memori yang berisi
data sesuai dengan tipe data yang dideklarasikan, bukan
untuk berisi nilai bertipe data tertentu.
-Tipe data digunakan sebagai lebar data untuk alokasi
memori (misal char berarti lebar datanya 1 byte, dst).
int *ptr;
ptr=&x;
}
Y = 12.34;
X1 = & Y;
X2 = X1;
// simpan nilai X1 ke X2
printf(Alamat X1 = %p, isinya = %f\n, X1, *X1);
printf(Alamat X2 = %p, isinya = %f\n, X2, *X2);
}
Operasi Logika
POINTER KE POINTER
dalam C++, kita dapat mempunyai pointer yang menunjuk ke dalam pionter yang lain
yang telah menunjuk ke alamat tertentu. situasi ini sering disebut multiple indirection atau
pointer ke pointer. pointer ke pointer ini memang sering membingungkan apalagi untuk
seorang programmer pemula. sebenarnya konsepnya sederhana, kita tahu bahwa pointer
normalnya berisi alamat dari sebuah objek (variabel) yang menyimpan nilai berupa data.
sebagai gambaran:
pointer
alamat
pointer
alamat
pointer
variabel
nilai
single indirection
variabel
alamat
multiple indirection
nilai
#include <iostream.h>
int main()
{
int X = 25;
int *P1;
int **P2;
P1 = &X;
P2 = &P1;
cout<<"Nilai X
cout<<"Nilai *P1
cout<<"Nilai *P2
cout<<"Nilai **P2
cout<<endl;
: "<<X<<endl;
: "<<*P1<<endl;
: "<<*P2<<endl;
: "<<**P2<<endl;
cout<<"Nilai &X
cout<<"Nilai P1
cout<<"Nilai P2
:"<<&X<<endl;
:"<<P1<<endl;
:"<<P2<<endl;
return 0;