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.


13.11
alie
Posted in:
0 komentar:
Posting Komentar