Dereferensi dan Aritmetika Pointer
Baca memori melalui pointer dan telusuri array dengan aritmetika pointer
Dereferensi dan Aritmetika Pointer adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.
Membaca Melalui Penunjuk
Operator unary * membaca nilai yang ditunjuk oleh penunjuk.
int x = 42;
int* p = &x;
std::cout << *p; // 42Menulis Melalui Penunjuk
Anda juga dapat menggunakan *p di sisi kiri penugasan untuk menulis ke sasaran.
*p = 100;
std::cout << x; // 100Operator Panah
Untuk penunjuk ke struktur atau kelas, p->member adalah bentuk singkat dari (*p).member. Gunakan tanda panah — itulah konvensinya.
struct Point { int x, y; };
Point pt{3, 4};
Point* p = &pt;
std::cout << p->x; // 3Dasar-Dasar Aritmetika Penunjuk
Anda dapat menambahkan atau mengurangkan bilangan bulat dari penunjuk. Hasilnya berpindah dalam langkah berukuran elemen — bukan byte.
int a[5] = {10, 20, 30, 40, 50};
int* p = a; // points to a[0]
p = p + 2; // now points to a[2]
std::cout << *p; // 30Menelusuri Larik
Aritmetika penunjuk meniru pengindeksan. a[i] dan *(a + i) identik — dan p[i] berfungsi pada penunjuk apa pun.
int a[] = {1, 2, 3, 4};
int* p = a;
for (int i = 0; i < 4; ++i) {
std::cout << *(p + i) << " ";
}Selisih Dua Penunjuk
Mengurangkan dua penunjuk dalam larik yang sama menghasilkan jarak dalam jumlah elemen — tipenya adalah std::ptrdiff_t.
int a[5];
int* first = a;
int* last = a + 5;
std::ptrdiff_t len = last - first; // 5Membandingkan Penunjuk
Anda dapat membandingkan kesamaan penunjuk dengan == dan !=, serta urutannya dengan < hanya jika keduanya menunjuk ke dalam larik yang sama.
Iterasi dengan Penunjuk
Iterasi bergaya C yang idiomatis menggunakan dua penunjuk — awal dan akhir.
int a[] = {1, 2, 3, 4, 5};
for (int* p = a; p != a + 5; ++p) {
std::cout << *p << " ";
}Boleh Melewati Akhir
Anda boleh menghitung penunjuk satu posisi setelah elemen terakhir (penunjuk "akhir") — tetapi melakukan dereferensi terhadapnya menghasilkan perilaku tak terdefinisi.
Kesalahan dalam Aritmetika Penunjuk
Kesalahan umum:
- Melewati batas larik
- Mencampur tipe penunjuk (
int*+char*) - Lupa bahwa aritmetika menggunakan satuan elemen, bukan byte
Utamakan Iterator atau Rentang
C++ modern lebih mengutamakan iterator dan pustaka rentang daripada aritmetika penunjuk mentah. Penunjuk tetap penting untuk API C dan kode tingkat sangat rendah.
Pemeriksaan Cepat
Jika p adalah int* yang menunjuk ke awal int berukuran 4 byte, ke mana p + 1 menunjuk?
Ringkasan
*p membaca atau menulis sasaran. p->member mengakses anggota struktur. Aritmetika penunjuk berpindah dalam langkah berukuran elemen. Gunakan dengan hati-hati — iterator dan rentang biasanya merupakan pilihan yang lebih aman dalam kode modern.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dereferensi dan Aritmetika Pointer” gratis?
Ya — teks lengkap “Dereferensi dan Aritmetika Pointer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dereferensi dan Aritmetika Pointer”?
Baca memori melalui pointer dan telusuri array dengan aritmetika pointer Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C++ Academy?
Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Dereferensi dan Aritmetika Pointer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pointer Mentah dan Operator Address-of
- Dereferensi dan Aritmetika Pointer
- nullptr dan Keamanan Pointer Null
- Kapan Menggunakan Pointer vs Referensi