Page 167 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 167
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>
int main(void) {
/* Mendeklarasikan pointer P yang bersifat konstan */
int *const P;
int x, y;
x = 10;
y = 12;
P = &x;
*P = 5; /* BENAR, karena nilai dari alamat yang ditunjuk