Pointer
1 PENGERTIAN POINTER
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua
Operator Pointer ada dua, yaitu :
? Operator &
1. Operator & bersifat unary (hanya memerlukan satu operand saja).
2. Operator & menghasilkan alamat dari operandnya.
? Operator *
1. Operator * bersifat unary (hanya memerlukan satu operand saja).
2. Operator * menghasilkan nilai yang berada pada sebuah alamat.
2 Inisialisasi String(cont.)
Contoh program array dimensi 2
/*Program :array.cpp*/
#include
Void printArray(int [] [3]);
Main() {
int matrik1[2] [3] ={ {1,2,2}, {4,5,6} },
matrik2[2] [3] ={ {1,2,3,4,5,} },
matrik3[2] [3] ={ {1,2}, {4} },
printArray(matrik1) ;
printArray(matrik2) ;
printArray(matrik3) ;
return 0;
}
Pointer : variabel yang berisi alamat memori
Bentuk Umum : Type *variable name;
Type adalah tipe dasar pointer
Variable name adalah nama variabel pointer
* adalah operator memori untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand.
Contoh program pointer
//Program :pointer1. cpp
#include <'iostream.h'>
// cetak p dan *p
Void main(void)
{
int v = 7, *p;
p = &v;
cout << “Nilai v = “ << v << “ dan *p = “ << *p
<< “ \nAlamatnya = “ << p << ‘n’;
}
Hasil dari program adalah sebagai berikut :
Nilai v = 7 dan *p = 7
Alamatnya = efffb24
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;
}
• Operasi Aritmatika
? Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan.
Contoh Program :
#include <'stdio.h'>
#include <'conio.h>
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
printf(�Nilai %i ada di alamat memori %p\n�, *penunjuk, penunjuk);
printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+1), penunjuk+1);
printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+2), penunjuk+2);
getch();
}
• Operasi Logika
? Suatu pointer juga dapat dikenai operasi logika.
Contoh Program :
#include <'stdio.h'>
#include <'conio.h'>
void main()
{ int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
if(pa < pb)
printf(�pa menunjuk ke memori lebih rendah dari pb\n�);
if(pa == pb)
printf(�pa menunjuk ke memori yang sama dengan pb\n�);
if(pa > pb)
printf(�pa menunjuk ke memori lebih tinggi dari pb\n�);
getch();
}
4 POINTER DAN STRING
Contoh Program 1 :
#include <'stdio.h'>
#include <'conio.h'>
char *nama1 = �SPIDERMAN�;
char *nama2 = �GATOTKACA�;
void main()
{ char namax;
clrscr();
puts(�SEMULA :�);
printf(�Saya suka >> %s\n�, nama1);
printf(�Tapi saya juga suka >> %s\n�, nama2);
/* Penukaran string yang ditunjuk oleh pointer nama1 dan nama2 */
printf(�SEKARANG :�);
printf(�Saya suka >> %s\n�, nama1);
printf(�Dan saya juga masih suka >> %s\n�, nama2);
getch();
}
Contoh Program 2 :
#include
void misteri1(char *);
void main() {
char string[] = "characters";
printf("String sebelum proses adalah %s", string);
misteri1(string);
printf("String setelah proses adalah %s", string);
}
void misteri1(char *s) {
while ( *s != '\0' ) {
if ( *s >= 'a' && *s <= 'z' )
*s -= 32;
++s;
}
}
5 Array Pointer
Pointer dapat di-array seperti tipe data lain dalam C++ integer
contoh :
Int *pi[10];
Contoh Program array pointer
//Program :pointer6. cpp
#include
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;
}
Output :
10, 20, 30, 40, 50,
from : http://arem756.blogspot.com/2009/06/artikel-dan-contoh-program-pointer-c.html
Tidak ada komentar:
Posting Komentar