Nilai vs Pointer
Pelajaran 7 dari 17 dalam kursus Fungsi dalam C di Coddy.
Saat kita memberikan parameter ke fungsi, kita bisa melakukannya dengan dua cara: berdasarkan nilai atau menggunakan pointer. Mari kita lihat contoh sederhana untuk memahami maksud nilai dan pointer:
#include <stdio.h>
void sum(int a) {
a = a + 1;
printf("sum function: %d\n", a);
}
int main(void) {
int a = 10;
sum(a);
printf("main function: %d\n", a);
return 0;
}Output:
sum function: 11
main function: 10 Seperti yang kamu lihat pada contoh ini, kita menggunakan nilai, jadi nilai variabel a tidak berubah. Namun, jika kita perlu mengakses variabel dan mengubah nilainya, kita bisa menggunakan pointer sebagai parameter.
#include <stdio.h>
void sum(int *a) {
*a = *a + 1;
printf("sum function: %d\n", *a);
}
int main(void) {
int a = 10;
sum(&a);
printf("main function: %d\n", a);
return 0;
}Karena fungsi sekarang menerima pointer sebagai parameter, saat fungsi dipanggil, kamu harus memberikan alamat variabel:
sum(&a);Output:
sum function: 11
main function: 11 Tantangan
MudahDalam kode yang diberikan, kita mendefinisikan variabel bernama y.
- Tulis fungsi
squareyang menerima pointer ke sebuah integer sebagai parameternya. - Di dalam fungsi ini, kuadratkan nilai variabel yang ditunjuk oleh pointer tersebut, lalu cetak nilainya.
- Cetak nilai variabel di dalam fungsi
squaredan fungsimainuntuk menunjukkan bahwa variabel aslinya telah berubah.
Coba sendiri
#include <stdio.h>
// Fungsi square untuk menguadratkan nilai melalui pointer
int main(void) {
int a = 200;
// Panggil fungsi square
// Cetak variabel awal
return 0;
}
Semua pelajaran di Fungsi dalam C
Latihan sendiri: Compiler C online