C++ | #26 Pointer dan Array


 

Halo teman-teman, sebelumnya kita sudah belajar tentang pointer dan bagaimana pointer bisa menunjuk ke variabel. Kali ini kita akan lihat bagaimana pointer bekerja dengan array, karena sebenarnya array dan pointer punya hubungan yang sangat dekat di C++.


Array dan Alamat Elemen

Seperti yang sudah kita tahu, array adalah kumpulan elemen yang disimpan berurutan di memori. Setiap elemen punya alamat masing-masing.

Contoh sederhana:

#include <iostream> using namespace std; int main() { int angka[5] = {10, 20, 30, 40, 50}; cout << "Alamat angka[0]: " << &angka[0] << endl; cout << "Alamat angka[1]: " << &angka[1] << endl; cout << "Alamat angka[2]: " << &angka[2] << endl; return 0; }

Output (alamat bisa berbeda):

Alamat angka[0]: 0x7ffee3b3a880 Alamat angka[1]: 0x7ffee3b3a884 Alamat angka[2]: 0x7ffee3b3a888

👉 Perhatikan bahwa alamat elemen array berurutan, dan jaraknya sesuai ukuran tipe data (contohnya int biasanya 4 byte).


Array adalah Pointer

Ketika kita menuliskan nama array, misalnya angka, sebenarnya itu adalah sebuah pointer yang menunjuk ke elemen pertama (angka[0]).

Contoh:

#include <iostream> using namespace std; int main() { int angka[3] = {7, 14, 21}; cout << "Isi angka (sebagai pointer): " << angka << endl; cout << "Alamat angka[0]: " << &angka[0] << endl; return 0; }

Output:

Isi angka (sebagai pointer): 0x7ffee7986880 Alamat angka[0]: 0x7ffee7986880

👉 Jadi, angka sama dengan &angka[0].


Mengakses Array dengan Pointer

Karena array adalah pointer, kita bisa menggunakan pointer untuk mengakses elemen array.

#include <iostream> using namespace std; int main() { int angka[5] = {1, 2, 3, 4, 5}; int* ptr = angka; // sama dengan &angka[0] cout << "Elemen pertama: " << *ptr << endl; cout << "Elemen kedua: " << *(ptr + 1) << endl; cout << "Elemen ketiga: " << *(ptr + 2) << endl; return 0; }

Output:

Elemen pertama: 1 Elemen kedua: 2 Elemen ketiga: 3

👉 Operator *(ptr + i) sama artinya dengan angka[i].


Looping Array dengan Pointer

Dengan pointer, kita bisa melakukan perulangan untuk membaca semua elemen array.

#include <iostream> using namespace std; int main() { int angka[5] = {10, 20, 30, 40, 50}; int* ptr = angka; for (int i = 0; i < 5; i++) { cout << "angka[" << i << "] = " << *(ptr + i) << endl; } return 0; }

Output:

angka[0] = 10 angka[1] = 20 angka[2] = 30 angka[3] = 40 angka[4] = 50

Kesimpulan

  • Nama array (angka) sebenarnya adalah pointer ke elemen pertama (&angka[0]).

  • Elemen array bisa diakses dengan *(ptr + i) atau array[i].

  • Pointer dan array sangat erat kaitannya, sehingga banyak operasi array bisa digantikan dengan pointer.


Sampai di sini, kita sudah paham hubungan pointer dengan array.
Selanjutnya kita akan belajar Pointer dan Fungsi, di mana pointer bisa dipakai untuk mengirim data antar fungsi.

Posting Komentar

0 Komentar