pointer hanya berisi alamat memory dari variabel lain yang memiliki nilai data tertentu saja.
example:
int data = 10;
int*ptr,hasil; //ptr dideklarasikan sebagai pointer
ptr=&data; //ptr mengambil alamat variabel data
hasil=*ptr;//hasil mengambil data dari alamat variabel ptr.
Tanda & berfungsi untuk mengetahui alamat memory dari variabel tertentu.
Catatan:
Jika ditampilkan isinya ptr, akan menghasilkan alamat memory dari variabel data, atau dengan cara lain untuk menampilkan alamat dari variabel data yaitu dengan &data.
Jika ditampikan isinya *ptr, akan menghasilkan nilai dari variabel data, atau dengan cara lain jika ditampilkan isi dari *(&data) akan menghasilkan isi dari variabel data, yaitu 10.
Beberapa hal tentang pointer
Operasi variabel pointer dapat dikerjakan oleh variabel pointer yang lain.
example:
X = 10;
Ptr1 = &X;
Ptr2 = Ptr1;
Ptr1 dan Ptr2 menghasilkan alamat variabel X yang sama.
Operasi pointer dapat diterapkan pada tipe data array
Pointer dapat digunakan untuk mengakses elemen array
Pointer dapat menunjuk alamat pointer lain.
example:
int X = 11;
int *Ptr1, **Ptr2;
Ptr1 = &X;
Ptr2 = &Ptr1;
Jika ditampilkan isi Ptr1 dan Ptr2 akan menghasilkan nilai 11.
Ptr2 Ptr1 X
Pointer sebagai parameter
Dalam menjalankan tugas sebagai parameter fungsi, pointer dapat mengembalikan nilai dari parameter yang disertakan.
PROGRAM PERCOBAAN
// Contoh 1
#include
void ubah(int *x,int*y);
void main()
{
int a=5;
int b=6;
printf(”Semula a = %d b = %d\n”,a,b);
ubah(&a,&b);
printf(”Kini a = %d b = %d\n”,a,b);
}
void ubah(int *x,int *y)
{
*x = *x * *x;
*y = *y + 60;
}
//Contoh 2
#include
#include
void main()
{
long int *A,*B,*C;
clrscr();
printf(”Isikan nilai A: “);scanf(”%d”,A);
*B = 10;
*C = *A * *B;
printf(”Alamat variabel A = %p \n”,&A);
printf(”Alamat variabel B = %p \n”,&B);
printf(”Alamat variabel C = %p \n”,&C);
printf(”Nilai C adalah :%6d \n”,*C);
getch();
}
//Contoh 3
#include
#include
void main()
{
int X[] = {10,20,50},*baca,i,sum=0;
clrscr();
baca = &X[0];
for(i=0;i<3;i++)
{
sum = sum + *(baca+i);
printf(”Nilai X[%d] = %d \n”,i+1,*baca+i);
}
printf(”Nilai Penjumlahan X = %d \n”,sum);
getch();
}
//Contoh 4
#include
#include
void main()
{
int *X,N=0,i=0,sum=0,data=0;
clrscr();
do{
*(X+N) = data;
printf(”isikan data %d: “,N+1);scanf(”%d”,&data);
N++;
} while (data != 0);
printf(”\n\n”);
for(i=1;i
sum = sum + *(X+i);
printf(”Nilai X[%d] = %d \n”,i,*(X+i));
}
printf(”Nilai Penjumlahan X = %d \n”,sum);
getch();
}
Sumber : mti.ugm.ac.id
Written by ANTONY RIPASSA on November 7, 2009 – 8:42 am