Berikut adalah contoh pointer didalam pemrograman bahasa C :
Contoh 1
Sumber : Abdul Kadir, 2003 Pemrograman Dasar Turbo C untuk IBM PC.
Contoh 1
/* --------------------------- */ /* file program : ARGPTR.C */ /* contoh fungsi dengan argumen berupa pointer */ /* -----------------------------------------------------*/ #include "stdio.h" void naikkan_nilai(int *x,int *y); main() { int a=3; int b=7; printf("Semula a=%d b=%d\n",a,b); naikkan_nilai(&a,&b); printf("Kini : a=%d b=%d\n",a,b); getch(); } void naikkan_nilai(int *x,int *y) { *x=*x+2; *y=*y+2; }Contoh 2
/* ---------------------------------------------- */ /* file program : ARR-NAMA.C */ /* menukarkan isi dua buah string */ /* tanpa pemakaian pointer */ /* ---------------------------------------------- */ #include "stdio.h" #include "string.h" #define PANJANG 20 /* ---isi nama1 dan nama2 semula--- */ char nama1[PANJANG]="JAMES BOAND"; char nama2[PANJANG]="HERCULE POIROT"; main() { char namax[PANJANG]; puts("SEMULA: "); printf("nama1 --> %s\n",nama1); printf("nama2 --> %s\n",nama2); /* penukaran string */ strcpy(namax,nama1); strcpy(nama1,nama2); strcpy(nama2,namax); puts("KINI: "); printf("nama1 --> %s\n",nama1); printf("nama2 --> %s\n",nama2); getch(); }Contoh 3
/* ---------------------------- */ /* file program : PTR1.C */ /* contoh pemakaian pointer */ /* ---------------------------- */ #include "stdio.h" main() { int x,y; /* x & y bertipe int */ int *px; /* px pointer yang menunjuk objek bertipe int */ x=87; px=&x; /* px berisi alamat dari x */ y=*px; /* y berisi nilai yang ditunjuk px */ clrscr(); printf(" Alamat x = %p\n",&x); printf("isi px = %p\n",px); printf("isi x = %d\n",x); printf("Nilai yang ditunjuk oleh px = %d\n",*px); printf("Nilai y = %d\n",y); getch(); }Contoh 4
/***********************************************/ /* file program: PTR2.C */ /* contoh pemakaian pointer yang salah */ /************************************************/ #include "stdio.h" main() { float *pu; float nu; int u=1234; clrscr(); pu=&u; /* pernyataan ini salah */ /* sebab pu adalah pointer float */ /* padahal u bertipe int */ nu=*pu; printf("u=%d\n",u); printf("nu=%f\n",nu); getch(); }Contoh 5
/* ----------------------------- */ /* file program : PTR3.C */ /* contoh pengubah isi suatu variabel */ /* melalui pointer */ /* ----------------------------- */ #include "stdio.h" main() { float d, *pd; d=54.5; clrscr(); printf("isi d semula = %g\n",d); pd=&d; *pd=*pd+10; printf("isi d kini = %g\n",d); printf("isi pd=%d dan isi &d=%d\n",pd,&d); /******--------------argumenku bozz------------**********************/ puts(""); printf("proses pd=&d adalah proses dalam pointer yang menunjukan\n"); printf("bahwa pd berisi alamat dari d, tentu hasil pd=&d tidak\n"); printf("seperti aslinya d=54.5 tetapi malah -56 ini adalah\n"); printf("proses dalam pointer bila ingin mengaksesnya\n"); printf("pakeklah tanda (*) yaitu (*pd) baru *pd hasilnya benar (*pd=54.5)\n"); getch(); }Contoh 6
/* ----------------------------- */ /* file program: PTR4.C */ /* contoh pointer yang menunjuk array */ /* ------------------------------ */ #include "stdio.h" main() { static int tgl_lhr[]= {24,6,1965}; int *ptgl; clrscr(); ptgl=tgl_lhr; /* ptgl berisi alamat array */ printf("Nilai yang ditunjuk oleh ptgl= %d\n",*ptgl); printf("Nilai dari tgl_lahir[0] = %d\n",tgl_lhr[0]); getch(); }Contoh 7
/* ----------------------------- */ /* file program: PTR5.C */ /* pengaksesan isi array */ /* dengan memakai pointer */ /* ------------------------------ */ #include "stdio.h" main() { static int tgl_lhr[]= {24,6,1965}; int *ptgl; int i; clrscr(); ptgl=tgl_lhr; /* ptgl berisi alamat array */ for(i=0;i<3;i++) printf("%d\n", *(ptgl+i)); getch(); }Contoh 8
/* -------------------------------- */ /* File program: PTR6.C */ /* Pengaksesan isi array */ /* dengan memakai pointer (versi 2) */ /* -------------------------------- */ #includeContoh 9main() { static int tgl_lahir[] = { 24, 6, 1965 }; int i; int *ptgl; clrscr(); ptgl = tgl_lahir; /* ptgl berisi alamat array */ for(i=0; i<3; i++) printf("%d\n", *ptgl++ ); getch(); }
/* --------------------------------------------------- */ /* fie program : PTRBULAN.C */ /* contoh fungsi dengan keluaran */ /* berupa pointer yang menunjuk string */ /* --------------------------------------------------- */ #include "stdio.h" char *nama_bulan(int n); main() { int bl; printf("Bulan (1...12): "); scanf("%d",&bl); printf("%s\n",nama_bulan(bl)); getch(); } char *nama_bulan(int n) { static char *bulan[]= { "kode bulan salah", "januari", "februari", "maret", "april", "mei", "juni", "juli", "agustus", "september", "oktober", "november", "desember" }; return ((n<1 || n>12) ? bulan[0]:bulan[n]); }Contoh 10
/* ------------------------------------------- */ /* file program : PTRKOTA.C */ /* contoh pointer yang menunjuk data string */ /* --------------------------------------------- */ #include "stdio.h" main() { char *pkota = "SEMARANG"; /*pkota menunjuk */ /* konstanta string "SEMARANG"*/ puts(pkota); getch(); }Contoh 11
/* ---------------------------------------------- */ /* file program : PTR-NAMA.C */ /* menukarkan isi dua buah string */ /* yang diunjuk oleh pointer */ /* ---------------------------------------------- */ #include "stdio.h" #include "string.h" /* ---isi nama1 dan nama2 semula--- */ char *nama1="JAMES BOAND"; char *nama2="HERCULE POIROT"; main() { char *namax; puts("SEMULA: "); printf("nama1 --> %s\n",nama1); printf("nama2 --> %s\n",nama2); /* penukaran string yang ditunjuk oleh pointer nama1 dan nama2 */ namax=nama1; nama1=nama2; nama2=namax; puts("KINI: "); printf("nama1 --> %s\n",nama1); printf("nama2 --> %s\n",nama2); getch(); }Contoh 12
/* --------------------------------- */ /* file program : PTRPTR.C */ /* contoh pointer yang menunjuk pointer */ /* ---------------------------------- */ #include "stdio.h" main() { int var_x=273; /* variabel int */ int *ptr1; /* pointer int */ int **ptr2; /* pointer menunjuk kepointer int */ ptr1=&var_x; /* ptr1 berisi alamat dari var_x */ ptr2=&ptr1; /* ptr2 berisi alamat dari ptr1 */ clrscr(); /* mengakses nilai var_x melalui ptr1 */ printf("Nilai var_x=%d\n",*ptr1); /* mengakses nilai var_x melalui ptr2 */ printf("Nilai var_x=%d\n",**ptr2); getch(); }
Sumber : Abdul Kadir, 2003 Pemrograman Dasar Turbo C untuk IBM PC.
0 komentar:
Posting Komentar