Page 160 - Project Akhir Media Pendidikan
P. 160
dua buah pointer sebagai parameternya. Adapun sintak pendefinisannya adalah sebagai
berikut.
void Tukar(int *px, int *py) {
int temp = *px;
*px = *py;
*py = temp;
}
Adapun contoh sintak yang melakukan pemanggilan fungsi tersebut adalah sebagai
berikut.
int a, b; /* variabel untuk menyimpan nilai yang akan
ditukar */
Tukar(&a, &b);
Sintak di atas akan menukarkan nilai yang terdapat di dalam dua buah alamat memori, yaitu
alamat dari variabel a dan variabel b. Di sini pointer px akan menunjuk ke alamat dari
variabel a (&a, sebut saja dengan alamat_A), sedangkan pointer py menunjuk ke alamat
dari variabel b (&b, sebut saja dengan alamat_B). Setelah itu, nilai yang terdapat pada
alamat_A akan ditukarkan dengan nilai yang terdapat pada alamat_B melalui variabel
bantu, yaitu variabel temp. Hal inilah yang menyebabkan setelah pemanggilan fungsi
Tukar(), maka nilai a dan b akan tertukar. Situasi ini dapat kita representasikan dengan
gambar berikut.
Di dalam fungsi Tukar():
px •
•
Pada saat pemanggilan:
a
b
Gambar 7.5. Menukarkan dua buah nilai dengan menggunakan pointer
Berikut ini contoh program yang akan membuktikan hal di atas. Adapun sintaknya
adalah sebagai berikut.
#include <stdio.h>
156