Page 159 - Project Akhir Media Pendidikan
P. 159
printf(“*P1 = %d \tP1 = %p\n”, *P1, P1);
printf(“*P2 = %d \tP2 = %p\n”, *P2, P2);
return 0;
}
Apabila dijalankan, program di atas akan memberikan hasil seperti di bawah ini.
A[0] = 10
A[1] = 20
A[2] = 30
A[3] = 40
A[4] = 50
A[5] = 60
A[6] = 70
A[7] = 80
A[8] = 90
A[9] = 100
*P1 = 10 P1 = 0073FDB0
*P2 = 40 P2 = 0073FDBC
P2 - P1 = 3
Setelah operasi penjumlahan:
*P1 = 20 P1 = 0073FDB4
*P2 = 60 P2 = 0073FDC4
7.6. Pointer dan Fungsi
Pada bagian ini kita akan membahas bagaimana hubungan yang terdapat antara fungsi
dan pointer. Dalam bahasa C, pointer dapat digunakan sebagai argumen atau parameter
dari suatu fungsi. Selain itu, bahasa C juga mengizinkan kita untuk dapat
mendeklarasikan pointer yang akan menunjuk ke sebuah fungsi. Berikut ini penjelasan
lebih detil mengenai kedua materi tersebut.
7.6.1. Pointer sebagai Parameter Fungsi
Pada bab sebelumnya kita telah membahas bahwa terdapat dua buah cara untuk
melewatkan parameter ke dalam suatu fungsi, yaitu dengan menggunakan pass by value
(melewatkan berdasarkan nilai) dan pass by reference (melewatkan berdasarkan
alamat). Alamat yang dimaksud di sini tidak lain adalah pointer. Dalam bab ini kita
akan menengok kembali apa sebenarnya yang terjadi pada saat proses pelewatan
parameter yang bertipe pointer.
Sebagai contoh untuk menerangkan materi ini, kita akan membuat fungsi yang berguna
untuk menukarkan dua buah bilangan (proses swapping). Di sini kita akan melewatkan
155