Fungsi dan Pointer Karakter
Sebuah konstanta string seperti “Saya adalah string” adalah sebuah array yang berisi kumpulan karakter huruf. Di dalam representasinya, ar- ray tersebut diterminasi dengan menggunakan karakter null ‘\0’ sehingga program dapat menemukan titik akhir dari barisan tersebut. Panjang ruang penyimpanan yang diperlukan untuk menyimpan string tersebut lebih pan- jang satu karakter dari jumlah karakter yang berada di antara dua tanda petik (“).
Penggunaan konstanta string sering muncul sebagai argumen ke fungsi seperti contoh berikut ini,
Ketika karakter string seperti itu muncul di dalam suatu program, maka un- tuk mengakses karakter tersebut adalah dengan menggunakan pointer yang menunjuk ke karakter tersebut. Fungsi printf menerima pointer yang me- nunjuk ke titik awal dari array karakter tersebut sehingga konstanta string tersebut diakses dengan menggunakan sebuah pointer yang menunjuk ke el- emen pertama dari konstanta string tersebut.
Konstanta string tidak harus digunakan sebagai argumen dari suatu fungsi. Seperti contoh berikut ini bila pmessage dideklarasikan seperti dibawah ini,
maka pernyataan,
menyebabkan pmessage sebagai pointer yang menunjuk ke array yang berisi kumpulan karakter huruf “Saya adalah string”.
Berikut ini adalah definisi-definisi yang perlu diperhatikan perbedaannya,
amessage adalah sebuah array yang cukup menampung barisan karakter dan ‘\0’ ketika diinisialisasi. Karakter-karakter individu yang berada di dalam array tersebut dapat diubah tetapi amessage akan selalu merujuk ke tempat penyimpanan yang sama. Hal ini berbeda dengan pmessage yang berfungsi sebagai pointer dimana inisialisasinya sebagai pointer yang menun- juk ke konstanta string. Berbeda dengan amessage yang menggunakan array, mengubah konstanta string yang ditunjuk oleh pmessage akan menyebabkan hasilnya undefined.
Daftar Pustaka
[1] Kernighan, B. W., & Ritchie, D. M. (1988). The C programming language (Vol. 2). Englewood Cliffs: prentice-Hall.