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.
Tantangan
MudahTulis program C yang menunjukkan cara meneruskan pointer ke fungsi. Programmu harus:
- Membuat fungsi bernama
displayValueyang menerima pointer ke integer sebagai parameternya - Di dalam fungsi
displayValue, menggunakan operator dereferensi untuk mengakses nilai pada alamat memori tersebut dan mencetaknya dengan format:Value at address: [value] - Di dalam fungsi
main, mendeklarasikan variabel integer bernamanumberdan menginisialisasinya dengan nilai 42 - Mencetak nilai asli dengan format:
Original value: [value] - Memanggil fungsi
displayValuedan meneruskan alamat variabelnumbermenggunakan operator alamat - 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 completedTantangan 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;
}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