PERCOBAAN 9
VARIABEL POINTER DAN PENGGUNAANNYA DALAM FUNGSI
TUJUAN
Mampu Mempelajari penggunaan variable pointer yang dipadukan dengan variabel bertipe integer, array, dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi atau sebagai argument fungsi.
Mampu Mempelajari pointer yang menunjuk pointer lainnya.
TEORI DASAR
Suatu pointer adalah suatu variabel yang menyimpan alamat dari suatu variabel yang ditunjuk oleh pointer yang bersangkutan. Karena data yang ditunjuk pointer bervariasi, maka tipe dari pointer harus disesuaikan dengan tipe data yang ditunjuk, untuk memperkirakan ukuran data yang ditunjuk, sehingga alokasi memori terhaga dengan baik. Pinter berguna untuk mentransfer data yang mempunyai kapasitas besar, melalui suatu fungsi. Pointer sangat erat kaitannya dengan array, sehingga variable pointer dapat menggantikan fungsi dari variable array.
PROGRAM PERCOBAAN
9.4.1
Mengakses isi suatu variabel melalui pointer. Untuk membedakan antara pointer dangan isi dari pointer maka dibedakan dengan menggunakan tanda ‘&’ (ampersand) dan ‘ * ‘ (asterisk), tanda’&’ digunakan pada variabel yang bukan pointer, bila suatu variabel bukan pointer maka diawali dengan tanda ‘&’ di depannya kemudian akan didapatkan alamat dari variabel tersebut. Demikian sebaliknya bila variabel pointer diawali dengan tanda ‘ * ‘, makaakan didapatkan nilai isi dari variable yang ditunjuk oleh pointer tersebut, dan bukan didapatkan alamatnya.
Contoh program :
/* Nama File : POINTER1.c */
void main()
{
int y, x = 2002; /* x & y bertipe int */
int *px; /* var pointer menunjuk data tipe int */
px = &x; /* px diisi alamat dari variabel x */
y = *px; /* y diisi nilai yang ditunjuk oleh px */
printf(“Alamat x = %p\n”, &x);
printf(“Isi px = %p\n”, &x);
printf(“Isi x = %p\n”, &x);
printf(“Nilai *px = %d\n”, *px);
printf(“Nilai y = %d\n”, y);
getch();
}
9.5.1
#include<conio.h>
{
int a[20],b,i,j,*ip;
char q;
awal:
printf(“\nMasukkan banyak data = “);
scanf(“%d”, &b);
{
printf(“\ninput data ke(%d) = “, i);
scanf(“%d”, &a[i]);
}
printf(“{“);
for(i=1; i<=b; i++)
{
printf(” %d “, a[i]);
}
printf(“}”);
ip=&a;
printf(“{“);
for(i=1; i<=b; i++)
{
printf(” %d “, *(ip+i));
}
printf(“}”);
getchar();
scanf(“%c”,&q);
{
goto awal;
}
Recent Comments