Page 170 - Project Akhir Media Pendidikan
P. 170
int x, y;
x = 10;
y = 12;
P = &x;
*P = 5; /* SALAH, karena nilai dari alamat yang ditunjuk
bersifat konstan */
x = 30; /* SALAH, karena nilai x besifat konstan */
P = &y; /* BENAR, hal ini diizinkan karena pointer P tidak
bersifat konstan */
return 0;
}
Pada program di atas tampak statemen const int *P yang menyatakan bahwa kita
melakukan deklarasi konstanta terhadap nilai yang alamatnya akan ditunjuk oleh pointer
P. Dengan demikian, apabila pointer P menunjuk ke alamat dari variabel x, maka nilai x
ataupun *P tidak dapat diubah. Sedangkan pointer P di atas tidak bersifat konstan sehingga
kita masih dapat memerintahkan pointer tersebut untuk menunjuk ke alamat dari variabel
lain (dalam hal ini y).
7.9.2. Kata Kunci const Setelah Tipe Data
Bentuk umum dari penempatan kata kunci const setelah tipe data adalah sebagai
berikut.
tipe_data * const nama_pointer;
Berbeda dengan sebelumnya, di sini kita mendeklarasikan pointer yang bersita konstan.
Artinya pointer tersebut hanya dapat menunjuk ke satu buah alamat tertentu saja.
Berikut ini contoh program yang akan menunjukkan hal tersebut.
#include <stdio.h>
166