Date post: | 14-Dec-2015 |
Category: |
Documents |
Upload: | joe-pearsall |
View: | 264 times |
Download: | 6 times |
POINTER
Outline
• Pointer dan Struktur• Pointer dan Array• Pointer dan Function
Pointer dan Struktur(Step-By-Step)
1. Seperti diketahui, deklarasi struktur sbb :struct tag {
char Fname[20]; char Lname[20]; int age;
};
Pointer dan Struktur2. Deklrasikan sebuah variable pointer
struct tag *st_ptr; 3. Deklarasikan variable struktur
struct tag my_struct; 4. Mengarahkan pointer kepada variable struktur
st_ptr = &my_struct; 5. Mengakses / memberi nilai melalui de-referensi pointer. Model Integer
(*st_ptr).age = 63; atau st_ptr->age = 63; atau
Model Char strcpy(st_ptr->nama,"Agus");
LatihanPointer dan Struktur
• Buatlah struktur ttg mhs (nama, usia, alamat)• Berikan nilai terhadap mhs tsb
(inisialiasi/input)• Tampilkan hasil isian nilai tsb
Kebimbangan :
1. Cara mengakses atribut salah :
scanf(“%d”, usia); apa salahnya ?
usia itu ada didalamnya struktur, sehingga harus diawali dengan nama strukturnya
scanf(“%d”, st_ptr->usia);
Kebimbangan :2. Cara memasukkan Nilai
(*st_ptr).usia = 63; Atau
scanf(“%d”, st_ptr->usia);
Solusinya ? Pilih salah satu
Pointer dan Array
1. Seperti diketahui, deklarasi pointer sbb :int *ptr;
2. Mendeklarasikan array :int my_array[] = {1,23,17,4,-5,100};
Pointer dan Array
3. Mengarahkan pointer ke array elemen pertama
ptr = &my_array[0]; Atau
ptr = my_array;
Tapi tidak boleh dibalik seperti ini : my_array = ptr;
`
4. Menampilkan Nilai Array, ada 2 cara pilihan :1.Melalui : variable array
cout<<my_array[1]; Atau 2. Melalui : variable pointer
(recommended) cout<< *(ptr+1);
Pertanyaan
Piye carane datane array kuwi, diketokke nang layar monitor, umpamane tampilane koyo ngisor iki :
Array ke 0 = 1 Array ke 1 = 23Array ke 2 = 17Array ke 3 = 4Array ke 4 = -5Array ke 5 = 100
Pointer dan Array#include <iostream.h> int my_array[] = {12,23,17,43,-5,10}; //Deklarasi Arrayint *ptr; //Deklarasi pointerint main(void){ int i; ptr = &my_array[0]; // mengarahkan pointer ke array ke 0 for (i = 0; i < 6; i++) {
cout<<" ptr + "<< i<<" = "<< *(ptr+i)<<"\n"; }}
Kegalauan
1. Menampilkan semua elemen array.SALAH : perintahnya satu persatu
cout<<*(ptr+0); cout<<*(ptr+1); cout<<*(ptr+2); cout<<*(ptr+3);
BENAR : gunakan perulangan (for / while) for (i = 0; i < 4; i++) { cout<<*(ptr+i); }
Next Weekmaterial
Pointer and FunctionPrepare, please!
Pointer dan Function
1. Variable pointer dapat didefinisikan (deklarasikan) sebagai lokal maupun global
2. Juga variable pointer dapat didefinisikan (deklarasikan) sebagai parameter didalam sebuah function
Letak Deklarasi
• GlobalDiletakkan diatas program utama dan diluarFunction.
• LokalDiletakkan didalam program utama atau didalamFunction.
• ParameterDiletakkan didalam nama function
Contoh Deklarasi Global
Variable my_struct dan *st_ptr
Contoh Deklarasi Lokal
Variable my_struct dan *st_ptr
Contoh Deklarasi Parameter
Variable pointer *p bertipe struct tag
void show_name(struct tag *p, int x, int y){
}
Si pemanggil function :Show_name (st_ptr, 9,4);