Pointer & Arrays
Pointer dimana dia menyimpan alamat dari variabel lain.
* = content of
&= addres of
Syntax
<type> * ptr_name:
Ex:
Int i, *ptr; (content)
Ptr = & i; * (menyimpan nilai variable yang lain)
*Ptr
Val Addr
| 41 | 108 |
i
| 5 | 104 |
Tujuan fflush : untuk membersihkan inputan yang tidak diperlukan
Single pointer : hanya dapat menyimpan alamat dari variable
Double pointer : menyimpan alamat dari single
Syntax
< type > ** ptr_ptr:
Ex:
Inti, *ptr, **ptr_ptr:
Ptr= &i;
Ptr_ptr = &ptr;
To assign new value = i
*ptr = 5, // i = 5
**ptr_ptr = 9; // i = 9
Prinsip pointer : berapa pun pointernya maka akan tetap berkurang satu per satu
**ptr_ptr
*ptr
*x
*Ptr = 15
Ptr_ptr = &,ptr;
X = 10;
**ptr_ptr = 20
Array Characteristics
- Homogenous
Semua elemen memiliki data yang sama
- Random Acces
Setiap elemen dapat dicapai individual secara berurutan
0 – 99
Int X [100]
0 – (n – 1) X [99] = 100
[] = indeks elemen
Array initialization
Ex :
Int B [ ] = {1,2,-4,8};
| 1 | 2 | -4 | 8 | 0 | 0 | 0 | 0 | 0 |
B(0) B(1) B(2) B(2) B(3) B(4) B(5) B(6) B(7)
Accesering Arrays dengan menggunakan pointer
- (A +2) or A [2] or A [2]
Pointer Variable
Pointer = assigned with value new run time
Pointer Constant = can’t assigned with value new run time
Array selalu diawali dengan nilai 0
Kerugian array = meemakan banyak memory
Int a[4][3]; [ ] [ ]
Row column
[ 0 ] [ 1 ] = 10
[ 0 ] [ 1 ] = 20
Int B (8) = {0,0,0,5};
B(5) = 15;
Int X;
Int * arr . ptr [ 5 ];
Arr_ptr [ 0 ]=&x;
Arr_ptr [ 4 ]
Character (double code)
String (single mode)
Setiap karakter array diakhiri dengan dengan (`\’)