Menu
CoddyTech

Pointer Konstan

Pelajaran 5 dari 14 dalam kursus Pointer C++ di Coddy.

Pointer konstan adalah pointer yang nilainya, yaitu alamat memori yang ditunjuknya, tidak dapat diubah setelah inisialisasi. Namun, nilai di lokasi memori yang ditunjuknya dapat diubah. Ada dua jenis pointer utama saat kita membahas pointer konstan

  • Pointer ke nilai konstan: menunjuk ke nilai konstan
  • Pointer konstan: selalu menunjuk ke suatu nilai

Jadi, apa perbedaannya


1. Pointer ke Nilai Konstan

Jenis pointer ini menunjuk ke nilai konstan. Nilainya tidak dapat diubah melalui pointer. Artinya, ini adalah pointer biasa yang hanya menunjuk ke nilai konstan. Dengan pointer ini, alamat yang ditunjuknya dapat diubah.

int a = 5, b = 10;
// Pointer ke int yang konstan
int const * ptr = &a;
 
// Ini diperbolehkan:
ptr = &b; // Mengubah alamat
 
// Ini tidak diperbolehkan:
*ptr = 10; // Mencoba mengubah nilai konstan

2. Pointer Konstan

Pointer konstan menunjuk ke nilai yang tidak konstan, tetapi pointer itu sendiri tidak dapat diubah agar menunjuk ke alamat lain. Alamat yang ditunjuknya bersifat konstan.

int a = 5, b = 10;
// Pointer konstan ke int
int * const ptr = &a;

// Ini diperbolehkan:
*ptr = 10; // Mengubah nilai non-const

// Ini tidak diperbolehkan:
ptr = &b; // Mencoba mengubah alamat konstan

Seperti yang kamu lihat, kata kunci const diletakkan sebelum * untuk pointer ke nilai konstan dan setelah * untuk pointer konstan ke nilai yang tidak konstan. Kita juga dapat menggabungkan keduanya dan membuat pointer konstan ke nilai konstan. Caranya dengan menggunakan dua kata kunci const, sebelum dan setelah tanda bintang, tetapi kita jarang memerlukan susunan seperti itu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Baca dua angka dari input, buat pointer konstan constPtr dan pointer ke nilai konstan ptrConst, inisialisasi constPtr agar menunjuk ke angka pertama, lalu ubah nilainya menjadi angka kedua, dan atur alamat ptrConst agar menunjuk ke angka kedua

Coba sendiri

#include <iostream>

using namespace std;

int main() {

    // Masukkan kodemu di sini


    // JANGAN UBAH KODE DI BAWAH INI
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    if(&a == constPtr)
        cout << "&a == constPtr" << endl;
    if(&b == ptrConst)
        cout << "&b == ptrConst" << endl;

    return 0;
}

Semua pelajaran di Pointer C++

Latihan sendiri: Compiler C++ online