Pointers dan Array

Pointer adalah variabel yang menyimpan alamat variabel lain.
Operator kebanyakan digunakan dalam penunjuk: * (isi) dan & (alamat)
Example:
Inisialisasi pointer bilangan bulat ke dalam variabel data:
int i, * ptr;
ptr = & i;
Untuk menetapkan nilai baru ke variabel yang ditunjuk oleh penunjuk:
* ptr = 5;
* berarti i = 5









Pointer to pointer adalah variabel yang menyimpan alamat pointer lain.
Example:
int i, * ptr, ** ptr_ptr;
ptr = & i;
ptr_ptr = & ptr;
Untuk menetapkan nilai baru ke i:
* ptr = 5;  berarti i = 5;
** ptr_ptr = 9; berarti i = 9; atau * ptr = 9;











Array adalah data yang disimpan dalam struktur tertentu untuk diakses sebagai grup atau individual. Beberapa variabel yang disimpan menggunakan nama yang sama dibedakan oleh indeks mereka.

Karakteristik array:
-Homogenous
Semua elemen memiliki tipe data yang sama.
-Akses acak
Setiap elemen dapat dijangkau secara individual, tidak harus berurutan.

Example:
Type array_value [value_dim];
int A [10];

Definisi ini terdiri dari 4 komponen:
-Type ditentukan
-Identifier atau nama array (A)
-Indeks operator ( [ ] )
-Nilai dimensi dalam operator [ ] (10)

Elemen array yang diindeks mulai dari 0 dan pada akhir array akan bernilai \0.

Example:
int A [10];
A [3] = 12;
A [7] = 14;
A [8] = 17;

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
[     ] [     ] [     ] [12 ] [    ] [     ] [     ] [14 ] [ 17] [     ] [  \0 ]

Dan jika kita tambah (+) atau kurangkan (-) arry tersebut
A[0] = A [8] - A [7];
A[4] = A [0] + A [3];

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
[  3 ] [     ] [     ] [12 ] [15 ] [     ] [     ] [14 ] [ 17] [     ] [  \0 ]

Pointer variable adalah pointer yang dapat ditugaskan dengan nilai baru pada saat run-time.
Pointer constant adalah pointer yang tidak dapat ditugaskan dengan nilai baru pada saat run-time
Array adalah Pointer Konstan ke elemen pertama dari array.Array dapat diisi dengan variabel penunjuk.

Example:
int x = 10, y = 20;
int B [4];    // B adalah Array => pointer konstan
int * ptr;     // ptr adalah variabel pointer
ptr = & x;  // ok
ptr = B;     // ok
ptr ++;      // ok
B = ptr;    // error
B ++;       // error
B = & y;  // error

Array 1 dimensi
Yaitu hanya menggunakan 1 array pada sebuah variabel seperti contoh sebeumnya.

Example:
int A[10]; atau int B[100];

Array 2 dimensi
Yaitu menggunakan 2 array pada sebuah variabel, yang terdiri dari baris dan kolom.

Example:
int A[3][3];
              kolom 0 kolom 1 kolom 2
Baris 0   A[0][0]  A[0][1]  A[0][2]
Baris 1   A[1][0]  A[1][1]  A[1][2]
Baris 2   A[2][0]  A[2][1]  A[2][2]

Array 3 dimensi
Yaitu menggunakan 3 array pada sebuah varabel, yang terdiri dari bari, kolom dan isinya.

Example:
int arr[2][3][4] = {
                            { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} },
                            { {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} }
                            };

String
String adalah array karakter yang diakhiri dengan karakter null (‘\ 0’ atau dalam ASCII = 0)
String konstan atau string literal adalah beberapa karakter yang ditulis antara kutipan ganda
Contohnya "Selamat datang" atau "Hello World".
String tipe konstan adalah pointer konstan, sehingga dapat ditugaskan ke array karakter.

Example:
char s[ ] = ”Hello”;        
Sama dengan:
char s[ ] = {’H’,’e’,’l’,’l’,’\0’}; 

Dalam Fungsi Perpustakaan Standar (file header string.h) menyediakan fungsi untuk memanipulasi string:
strlen () => Kembalikan nilai panjang string; excluded null char
strcpy (s1, s2) => Salin s2 ke s1
strncpy (s1, s2, n) => Salin karakter n pertama dari s2 ke s1
strcat (s1, s2) => Menambahkan string s2 ke ujung string s1
strncat (s1, s2, n) => Menambahkan karakter n dari string s2 ke ujung string s1
strcmp (s1, s2) => Membandingkan nilai string s1 dan s2, jika pengembalian serupa 0
dll.

2201762830
handy.jeschua@binus.ac.id
skyconnectiva.com
Handy Jeschua

Tidak ada komentar:

Posting Komentar