Pointer sering dianggap bagian tersulit C++, padahal konsepnya sederhana: sebuah variabel yang menyimpan alamat memori. Kita mempelajari alamat, dereferencing, reference, dan pointer arithmetic, lalu membandingkan pointer dan reference secara langsung.
Memahami memori sebagai barisan byte, konsep alamat setiap variabel, operator address-of (&), dan cara membaca tampilan alamat dalam heksadesimal.
Buka → # PointerMendeklarasikan pointer bertipe, mengisinya dengan alamat lewat &, mengganti sasarannya, dan membaca nilai yang ditunjuk lewat dereference.
Buka → # DereferencingMembaca dan menulis nilai melalui pointer dengan operator *, aturan precedence *p + 1 versus *(p+1), serta bahaya dereference pada pointer yang belum diinisialisasi.
Buka → # nullptrNull pointer konstanta modern C++: mengapa nullptr lebih aman daripada NULL, cara memeriksa pointer kosong, dan bahaya dereference nullptr.
Buka → # Pointer dan ArrayHubungan erat array dan pointer: array decay ke pointer elemen pertama, akses elemen lewat notasi indeks maupun dereference, dan konsekuensi saat array dikirim ke fungsi.
Buka → # Pointer ArithmeticMenggeser pointer dengan + dan -, menghitung selisih dua pointer, membandingkan pointer dalam array yang sama, serta batas-batas yang bila dilanggar menjadi undefined behavior.
Buka → # ReferenceReference sebagai alias permanen variabel lain: deklarasi dan inisialisasi wajib, ketiadaan rebind, dan perbandingannya dengan pointer.
Buka → # Const Pointer dan Pointer to ConstTiga bentuk kombinasi const dan pointer — pointer to const, const pointer, dan const pointer to const — beserta cara membaca deklarasinya dari kanan ke kiri.
Buka → # Pointer sebagai ParameterMengirim pointer ke fungsi untuk mengubah nilai asli, pola OUT parameter, pemeriksaan null-safe di dalam fungsi, dan perbandingannya dengan parameter reference.
Buka → # Pointer to PointerDeklarasi int** dan dereference bertingkat, kegunaannya untuk mengubah pointer di dalam fungsi dan array of pointers, serta posisinya di kode C++ modern.
Buka → # void Pointervoid* sebagai pointer generik lintas tipe: mengapa tidak bisa didereference langsung, cara mengembalikannya ke tipe asal, use case API C, dan kapan sebaiknya dihindari.
Buka → # Dangling PointerPointer yang menunjuk objek yang sudah tidak hidup: penyebab utamanya (variabel lokal yang selesai dan memori yang sudah di-delete) serta mitigasinya dengan nullptr dan smart pointer.
Buka → # Null dan Invalid PointerPeta lengkap pointer bermasalah — null, uninitialized, dangling, dan wild pointer — beserta cara mencegah masing-masing lewat kebiasaan defensif yang bisa dijadikan checklist.
Buka → # Pointer vs ReferencePerbandingan lengkap pointer dan reference: sintaks, semantik rebind dan alias, nullability, panduan memilih, dan penutup Section Pointer dan Reference.
Buka →