Penerusan dengan Nilai
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 25 dari 63.
Ketika kamu meneruskan variabel ke fungsi dalam C, fungsi menerima salinan nilai variabel tersebut, bukan variabel itu sendiri. Konsep dasar ini disebut pass-by-value.
Inilah yang terjadi: jika kamu memiliki variabel x dengan nilai 10 dan meneruskannya ke sebuah fungsi, fungsi tersebut mendapatkan salinan terpisah dari nilai itu. Perubahan apa pun yang dibuat fungsi pada salinan ini tidak memengaruhi variabel asli di fungsi pemanggil.
void tryToChange(int num) {
num = 99; // Ini hanya mengubah salinannya
}
int main() {
int x = 10;
tryToChange(x);
// x tetap bernilai 10, bukan 99
return 0;
}Perilaku ini melindungi data asli kamu agar tidak diubah secara tidak sengaja oleh fungsi. Namun, ini juga berarti bahwa jika kamu ingin fungsi benar-benar mengubah nilai variabel, pass-by-value tidak akan berfungsi. Memahami keterbatasan ini sangat penting saat kamu melanjutkan belajar tentang pointer dan cara pointer dapat mengatasi masalah ini.
Tantangan
MudahTulis program C yang mendemonstrasikan konsep pass-by-value dengan mencoba mengubah variabel di dalam fungsi dan mengamati bahwa variabel aslinya tetap tidak berubah.
Programmu harus:
- Membuat fungsi bernama
tryToModifyyang menerima parameter integer bernamanumber - Di dalam fungsi
tryToModify, menambahkan 50 ke parameternumber - Di dalam fungsi
tryToModify, mencetak nilai yang telah diubah dengan format:Inside function: [value] - Di dalam fungsi
main, mendeklarasikan variabel integer bernamaoriginaldan menginisialisasinya dengan nilai 25 - Mencetak nilai asli sebelum memanggil fungsi dengan format:
Before function call: [value] - Memanggil fungsi
tryToModifydan meneruskan variabeloriginalsebagai argumen - Setelah pemanggilan fungsi, mencetak kembali nilai
originaldengan format:After function call: [value]
Output programmu harus menunjukkan bahwa nilai variabel asli tetap tidak berubah meskipun ada perubahan di dalam fungsi:
Before function call: 25
Inside function: 75
After function call: 25Tantangan ini mendemonstrasikan konsep dasar pass-by-value dalam C, yaitu fungsi menerima salinan variabel, bukan variabel itu sendiri. Perubahan apa pun pada parameter di dalam fungsi tidak memengaruhi variabel asli dalam fungsi pemanggil.
Coba sendiri
#include <stdio.h>
// TODO: Tulis fungsi tryToModify-mu di sini
int main() {
// TODO: Tulis kodemu di sini
// 1. Deklarasikan dan inisialisasi variabel awal
// 2. Cetak nilai sebelum pemanggilan fungsi
// 3. Panggil fungsi tryToModify
// 4. Cetak nilai setelah pemanggilan fungsi
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