0Pricing
C++ Academy · Pelajaran

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;   // 42

Menulis Melalui Penunjuk

Anda juga dapat menggunakan *p di sisi kiri penugasan untuk menulis ke sasaran.

*p = 100;
std::cout << x;   // 100

Operator 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;   // 3

Dasar-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;   // 30

Menelusuri 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;  // 5

Membandingkan 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

  1. Pointer Mentah dan Operator Address-of
  2. Dereferensi dan Aritmetika Pointer
  3. nullptr dan Keamanan Pointer Null
  4. Kapan Menggunakan Pointer vs Referensi
← Kembali ke C++ Academy