Menu
CoddyTech

Nama array sebagai pointer

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 7 dari 63.

array dan pointer di C memiliki hubungan khusus yang sangat penting untuk memahami cara C bekerja dengan data di memori. Saat kamu mendeklarasikan array, nama array itu sendiri bertindak sebagai pointer konstan ke elemen pertama array.

Ini berarti, saat kamu memiliki array seperti int numbers[5];, nama numbers pada dasarnya adalah pointer yang selalu menunjuk ke numbers[0]. Kamu bisa menganggap nama array sebagai pointer bawaan yang tidak perlu kamu deklarasikan secara terpisah.

int numbers[5] = {10, 20, 30, 40, 50};
// 'numbers' menunjuk ke elemen pertama
// numbers == &numbers[0]  // Keduanya setara!

Kesetaraan ini sangat penting: numbers dan &numbers[0] sama-sama memberikan alamat memori yang persis sama. Nama array hanyalah cara yang lebih praktis untuk merujuk alamat elemen pertama tanpa harus menggunakan operator alamat.

Memahami hubungan ini membuka peluang untuk menggunakan teknik pointer dengan array, yang dapat membuat kodemu lebih fleksibel dan efisien. Perbedaan utamanya adalah, tidak seperti pointer biasa, nama array merupakan pointer konstan, kamu tidak dapat mengubah objek yang ditunjuknya.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan kesetaraan antara nama array dan pointer ke elemen pertamanya. Programmu harus:

  1. Mendeklarasikan array integer bernama numbers dengan 4 elemen dan menginisialisasinya dengan nilai {10, 20, 30, 40}
  2. Mendeklarasikan pointer ke integer bernama ptr
  3. Menetapkan nama array numbers ke pointer ptr
  4. Mencetak alamat yang tersimpan di numbers menggunakan printf dengan penentu format %p
  5. Mencetak alamat elemen pertama &numbers[0] menggunakan printf dengan penentu format %p
  6. Mencetak alamat yang tersimpan di ptr menggunakan printf dengan penentu format %p
  7. Mencetak nilai elemen pertama menggunakan nama array: *numbers
  8. Mencetak nilai elemen pertama menggunakan pointer: *ptr

Outputmu harus menampilkan hasil dalam format berikut:

Array name address: [address]
First element address: [address]
Pointer address: [address]
Value via array name: 10
Value via pointer: 10

Tantangan ini menunjukkan bahwa nama array bertindak sebagai pointer konstan ke elemen pertama, dan bahwa numbers, &numbers[0], dan ptr semuanya berisi alamat memori yang sama saat ptr diberi nama array.

Coba sendiri

#include <stdio.h>

int main() {
    // TODO: Tulis kodemu di sini
    // 1. Deklarasikan dan inisialisasi array 'numbers' dengan {10, 20, 30, 40}
    // 2. Deklarasikan pointer ke bilangan bulat bernama 'ptr'
    // 3. Tetapkan nama array ke pointer
    // 4. Cetak semua alamat dan nilai yang diminta
    
    return 0;
}
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online