Menu
CoddyTech

Meneruskan Pointer ke Fungsi

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

Sekarang setelah kamu memahami keterbatasan pass-by-value, mari kita bahas bagaimana mengirim pointer ke fungsi dapat mengatasi masalah ini. Alih-alih mengirim salinan nilai variabel, kamu dapat mengirim alamat memori variabel ke fungsi.

Saat kamu meneruskan pointer ke fungsi, fungsi tersebut mendapat akses ke lokasi variabel asli di memori. Artinya, fungsi tersebut dapat bekerja langsung dengan data asli, bukan hanya salinannya.

void processValue(int *ptr) {
    // ptr menyimpan alamat variabel asli
    // Fungsi ini sekarang dapat mengakses lokasi memori tersebut
}

int main() {
    int x = 10;
    processValue(&x);  // Teruskan alamat x
    return 0;
}

Perhatikan bahwa kita menggunakan operator alamat & saat memanggil fungsi untuk meneruskan alamat variabel. Parameter fungsi dideklarasikan sebagai int *ptr, yang menunjukkan bahwa fungsi mengharapkan pointer ke bilangan bulat. Teknik mendasar ini membuka berbagai kemungkinan yang kuat bagi fungsi untuk berinteraksi dengan data programmu.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan cara meneruskan pointer ke fungsi. Programmu harus:

  1. Membuat fungsi bernama displayValue yang menerima pointer ke integer sebagai parameternya
  2. Di dalam fungsi displayValue, menggunakan operator dereferensi untuk mengakses nilai pada alamat memori tersebut dan mencetaknya dengan format: Value at address: [value]
  3. Di dalam fungsi main, mendeklarasikan variabel integer bernama number dan menginisialisasinya dengan nilai 42
  4. Mencetak nilai asli dengan format: Original value: [value]
  5. Memanggil fungsi displayValue dan meneruskan alamat variabel number menggunakan operator alamat
  6. Setelah pemanggilan fungsi, mencetak pesan konfirmasi: Function call completed

Output programmu harus menunjukkan bahwa fungsi berhasil menerima dan mengakses alamat memori variabel asli:

Original value: 42
Value at address: 42
Function call completed

Tantangan ini memperkenalkan konsep dasar meneruskan pointer ke fungsi, sehingga fungsi dapat mengakses lokasi memori variabel asli alih-alih bekerja dengan salinan nilainya.

Coba sendiri

#include <stdio.h>

// TODO: Tulis fungsi displayValue di sini

int main() {
    // TODO: Tulis kodemu di sini
    // 1. Deklarasikan dan inisialisasi variabel number
    // 2. Tampilkan nilai awal
    // 3. Panggil fungsi displayValue
    // 4. Tampilkan pesan penyelesaian
    
    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