..
.. Pemrograman Berorientasi Object menggunakan C++ oleh Teguh Wiharko, ST
..
.
Modul 10. Pointer
Alamat (dereference) Operator(&):
Ampersand sign (&) : berarti alamat dari /"address of" dari sebuah data pada
memori, hal ini merupakan implementasi dari pointer pada C++.
Contoh:
ted = &andy;
contoh penggunaan:
andy = 25;
fred = andy;
ted = &andy;
Struktur:
Contoh lainnya:
beth = ted; // beth equal to ted ( 1776 )
beth = *ted; // beth equal to value pointed by ted ( 25 )
Dimana: type adalah tipe dari data yang ditunjuk oleh pointer, bukan tipe data
pointer itu sendiri. Contoh :
int * number;
char * character;
float * greatnumber;
int main ()
{
int value1 = 5, value2 = 15;
int * mypointer;
mypointer = &value1;
*mypointer = 10;
mypointer = &value2;
*mypointer = 20;
cout << "value1==" << value1 << "/
value2==" << value2;
return 0;
}
Prog101.cpp
int main ()
{
int value1 = 5, value2 = 15;
int *p1, *p2;
int main ()
{
int numbers[5];
int * p;
p = numbers; *p = 10;
p++; *p = 20;
p = &numbers[2]; *p = 30;
p = numbers + 3; *p = 40;
p = numbers; *(p+4) = 50;
for (int n=0; n<5; n++)
cout << numbers[n] << ", ";
return 0;
}
Prog103.cpp
Inisialisasi Pointer :
int number;
int *tommy = &number;
31
keterangan:
variable terry berisi nilai 1702 dan bukan ‘h’ ataupun “hello”
Untuk merubah karakter ‘o’ pada string “hello” di atas dapat digunakan dua cara
berikut ini:
terry[4] = '!';
*(terry+4) = '!';
grafik:
Arithmetic of pointers
Grafik:
Pointer to pointer:
Contoh:
32
char a;
char * b;
char ** c;
a = 'z';
b = &a;
c = &b;
grafik di bawah ini menunjukan bila alamat variable a, b, dan c di atas berada pada alamat
memori 7230, 8092 and 10502:
Maka :
c is a variable of type (char **) with a value of 8092
*c is a variable of type (char*) with a value of 7230
**c is a variable of type (char) with a value of'z'
void pointer:
void pointer dapat menunjuk ke semua tipe data , dari integer atau float atau string dan karakter.
Salah satu kegunaan dari void pointer adalah untuk mengisi parameter ke suatu fungsi,
seperti contoh di bawah ini:
int main ()
{
char a = 5;
short b = 9;
long c = 12;
Tambah (&a,sizeof(a));
Tambah (&b,sizeof(b));
Tambah (&c,sizeof(c));
cout << (int) a << ", " << b << ", " << c;
return 0;
}
Prog104.cpp
Pointers to functions:
// pointer to function 8
33
#include <iostream.h>
int main ()
{
int m,n;
m = operation (7, 5, addition);
n = operation (20, m, minus);
cout <<n;
return 0;
}
Prog105.cpp
Keterangan:
minus merupakan pointer global ke subah fungsi yang mempunyai 2 parameter bertipe int, dengan cara
menuliskan statement berikut ini:
int (* minus)(int,int) = subtraction;
Latihan:
1. Jelaskan perbedaan antara variable biasa dengan variable pointer!
2. Jelaskan penggunaan pointer pada struktur data Array!
3. Jelaskan input, proses dan output dari program-program di atas!
34