Operator Dereference (*)
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 4 dari 63.
Sekarang kamu sudah tahu cara menyimpan alamat di pointer, kamu perlu belajar cara mengakses nilai sebenarnya yang tersimpan di alamat memori tersebut. Operator dereferensi (*) memungkinkan kamu "mengikuti" pointer untuk mendapatkan nilai yang ditunjuknya.
Ketika kamu menempatkan operator * di depan variabel pointer, operator ini mengakses nilai yang tersimpan di alamat memori yang dipegang pointer tersebut. Anggap saja seperti mengatakan "berikan kepadaku apa yang ada di dalam ruangan pada alamat ini."
int age = 25;
int *ptr = &age;
printf("%d", *ptr); // Mencetak 25, nilai dari agePenting untuk memahami bahwa tanda bintang (*) memiliki dua arti berbeda dalam C. Saat mendeklarasikan pointer seperti int *ptr;, tanda bintang menunjukkan bahwa ptr adalah pointer. Saat digunakan dengan pointer yang sudah ada seperti *ptr, tanda bintang melakukan dereferensi pada pointer untuk mengakses nilai yang ditunjuknya.
Operator dereferensi penting karena melengkapi siklus pointer: kamu dapat menyimpan alamat dalam pointer dengan &, lalu mengambil nilai di alamat tersebut dengan *. Dengan begitu, kamu dapat mengakses dan mengubah variabel secara tidak langsung melalui alamat memorinya.
Tantangan
MudahTulis program C yang menunjukkan alur kerja pointer secara lengkap: deklarasi, penetapan alamat, dan dereferensi. Programmu harus:
- Mendeklarasikan variabel integer bernama
valuedan menginisialisasinya dengan nilai 75 - Mendeklarasikan variabel float bernama
pricedan menginisialisasinya dengan nilai 19.99 - Mendeklarasikan pointer ke integer bernama
value_ptr - Mendeklarasikan pointer ke float bernama
price_ptr - Menggunakan operator address-of untuk menetapkan alamat
valuekevalue_ptr - Menggunakan operator address-of untuk menetapkan alamat
pricekeprice_ptr - Menggunakan operator dereference untuk mencetak nilai
valuemelaluivalue_ptr - Menggunakan operator dereference untuk mencetak nilai
pricemelaluiprice_ptrdengan tepat 2 angka di belakang koma
Output-mu harus menampilkan nilai yang didereferensikan dalam format berikut:
Value through pointer: 75
Price through pointer: 19.99Tantangan ini menguji pemahamanmu tentang cara operator dereference mengambil nilai variabel asli dengan mengikuti alamat yang disimpan oleh pointer.
Coba sendiri
#include <stdio.h>
int main() {
// TODO: Tulis kodemu di sini
// 1. Deklarasikan dan inisialisasi variabelmu
// 2. Deklarasikan pointer
// 3. Tetapkan alamat ke pointer
// 4. Tampilkan nilai yang diakses melalui pointer
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online