Pointer dan Array
Pointer adalah variabel yang menyimpan alamat variabel lain
syntax : <type> *pointername
(*) >> menunjukkan isi sedangkan (&) >> menunjukkan alamat
pointer tidak bisa menyimpan value, selain alamat variable lain.
contoh :
int i, *ptr
ptr = &i
artinya : value yang tersimpan di *ptr = i
ada beberapa jenis pointer
1. Pointer (*ptr)
2. Double Pointer (*ptr_ptr)
Double pointer jarang digunakan
Array
Definisi Array : Menyimpan data dengan tertentu dengan jumlah yang banyak. Namun hanya dengan tipe data yang sama. ( [ ] )
Sifat dari Array: Homogen ( Tipe data haya 1) , random access ( dapat diakses secara satu-persatu, tidak harus berurutan)
4 komponen dalam Array
–Type specified (tipe data)
–Identifier (nama dari array)
–Operator index ([ ]) (index dari operator)
–Dimensional value inside operator [ ] ( isi dari operator)
Array Initialization
contoh
int a [] = { 1, 2, 4, 8}
hanya 4
int a [8] = {1,2,3,4}
sisa yang tidak di inisialisasi bernilai default (0)
int B[4] = { 1, 2, -4, 8, 9 }; >> inisialisasi berurutan
akan error, karena jumlah memori yang disediakan hanya 4, sedangkan nilai yang di tampung ada 5
Accessing Array
Dua cara untuk mengakses array i = 2:
1. *(A+2)
2. A[2]
Assigning Value
Contoh :
A[6] = 15; A[3] = 27; >> memberi nilai dalam alamat tertentu
maka
27 15
A[0] A[0] A[0] A[0] A[0] A[0]
Array dalam dimensi
Array 1 Dimensi
Contoh program
#include<stdio.h>
int SIZE = 5;
void main() {
int i, j;
int n[SIZE] = {15, 9, 1, 7, 5};
for( i=0 ; i<= SIZE ; i++) {
printf(“%5d “, n[i]);
for ( j=1; j<=n[i] ; j++) printf(“%c”,”*”);
printf(“\n”);
Array 2 dimensi
#include <stdio.h>
void main() {
int two_dim[3][5] = {1, 2, 3, 4, 5,
10, 20, 30, 40, 50,
100, 200, 300, 400, 500};
int i, j;
for (i=0; i<3; i++){
for (j=0; j<5; j++) printf(“%6d”, two_dim[i][j]);
printf(“\n”);
}