Deklarasi variabel bertipe pointer

2008 | Direktorat Pembinaan SMK 437 Gambar 13.4. Variabel pointer px menunjuk ke variabel x Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut : Gambar 13.7. deklarasi variabel pointer Dimana type merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer- nya. Dengan tipe dapat berupa sembarang tipe yang sudah dibahas pada bab-bab sebelumnya, maupun bab-bab berikutnya. Adapun nama_var_pointer adalah nama dari variabel pointer. Perhatikan contoh berikut ini: int px; char pch1, pch2; float greatnumber; Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah variabel pointer yang menunjuk ke data bertipe char. 1000 ? X px zzzz 1000 Alamat tipe_data nama_var_pointer char, float, int, double, long, operator bintang asterisk 4 Pr in in us int { } Ke Ou nil lan dib m Pr in us 438 G rogram 13.1 nclude iostre ncludeconio sing namespa t main int nila int m mypoin mypoin mypoin mypo cout return eluaran prog utput : nilai1= Perhatika lai1 dan nila ngsung. berikan al enggunakan rogram 13.2 nclude iostre sing namespa Gambar 13.6 eam o.h ace std; i1 = 5 , nilai2 = mypointer; nter = nilai1 nter = 10 ; nter = nilai2 inter = 20 ; nilai1== ; gram diatas ==10 nilai2= an bagaiman ai2 diubah s Pertama lamat nila n tanda amp eam.h ace std; 6. Ilustrasi pe = 15 ; 1; 2; nilai1 adalah seba ==20 na nilai dar secara tidak mypointe i1 dengan persand endeklarasia nilai2== agai berikut: ri k r n . Kemudi nilai ya yaitu ala tidak dimodifi Direktorat an variabel p nilai2; an membe ang ditunjuk amat dari ni langsung ikasi. Begitu t Pembinaan SM pointer rikan nilai k oleh myp ilai1, maka nilai1 pula untuk MK | 2008 10 ke pointer, secara telah nilai2. 2008 | Direktorat Pembinaan SMK 439 int main { int nilai1 = 5 , nilai2 = 15 ; int p1, p2; p1 = nilai1; p1 = address of nilai1 p2 = nilai2; p2 = address of nilai2 p1 = 10 ; nilai pointed by p1 = 10 p2 = p1; nilai pointed by p2 = nilai pointed by p1 p1 = p2; p1 = p2 nilai of pointer copied p1 = 20 ; nilai pointed by p1 = 20 cout nilai1== nilai1 nilai2== nilai2; return ; } Keluaran program diatas adalah sebagai berikut: nilai1==10 nilai2==20

13.3. Inisialisasi Pointer

Dalam melakukan pemrogaman dengan menggunakan pointer yang pertama perlu dilakukan dalam membuat program adalah dengan melakukan inisialisasi pointer tersebut. Untuk lebih jelasnya perhatikan contoh dibawah ini: int number; int tommy = number; pernyataan diatas akan sama atau ekivalen dengan pernyataan dibawah ini: int number; int tommy; tommy = number; Seperti pada array, inisialisasi isi dari pointer dapat dilakukan dengan deklarasi seperti contoh berikut : char terry = hello; Misalkan kata hello disimpan pada alamat 1702 dan seterusnya, maka deklarasi tadi dapat digambarkan sebagai berikut: 440 Direktorat Pembinaan SMK | 2008 ‘h’ ‘e’ ‘l’ ‘l’ ‘o’ ‘\0’ 1702 1703 1704 1705 1706 1707 terry 1702 Gambar 13.7. deklarasi hello pada mulai alamat 1702 terry berisi nilai 1702 dan bukan h atau hello, walaupun 1702 menunjuk pada karakter tersebut. Sehingga jika akan dilakukan perubahan pada karakter o diganti dengan tanda maka ekspresi yang digunakan ada 2 macam : terry[4] = ; terry+4 = ; Penulisan terry[4] dan terry+4, mempunyai arti yang sama. Jika digambarkan: ‘h’ ‘e’ ‘l’ ‘l’ ‘’ ‘\0’ 1702 1703 1704 1705 1706 1707 terry 1702 terry[4] terry+4 Gambar 13.8 Deklarasi “Hello” pada Alamat Terry[4] Diisi Perhatikan contoh program dibawah, dimana char memerlukan 1 byte, short memerlukan 2 bytes dan long memerlukan 4. Terdapat 3 buah pointer : char mychar; short myshort; long mylong; ekspresi diatas akan menunjuk pada lokasi dimemory masing-masing 1000, 2000 and 3000, sehingga jika dituliskan : mychar++; myshort++; mylong++; mychar, akan bernilai 1001, myshort bernilai 2002, dan mylong bernilai 3004. Alasannya adalah ketika terjadi pertambahan maka akan