Parametreler
- C++ kursu
- Başlangıç
- Ders 67/116
- 4 dk
Fonksiyona parametre geçmeyi öğrenirsin.
Parametre ve argüman
Bir fonksiyon, dışarıdan değer alabilir. Tanımda parametre yazarsın: void greet(std::string name)'deki name bir parametredir. Çağrıda gönderdiğin değere argüman denir: greet("Ayşe")'deki "Ayşe" bir argümandır.
Parametre, fonksiyon içinde bir değişken gibi kullanılır. Çağrı sırasında argümanın değeri parametreye kopyalanır; bu değerle çağrı adını alır. Yani fonksiyon içinde parametreyi değiştirsen bile çağıran taraftaki orijinal değişken etkilenmez.
Değerle çağrı
C++'ta varsayılan davranış değerle çağrıdır. void addTen(int x) fonksiyonuna addTen(n) diye çağrı yaptığında, n'in değeri x'e kopyalanır. x = x + 10; yapsan bile n değişmez.
Bu, fonksiyonun yan etkilerini sınırlar; kodu takip etmeyi kolaylaştırır. Fonksiyonun çağıran tarafı değiştirmesini istiyorsan referans parametresi kullanmalısın; buna ileriki seviyede değineceğiz. Şimdilik parametrelerin kopya olduğunu bilmen yeterli.
Uygulama Parametreli greet yaz ve çağır
Bir void greet(std::string name) fonksiyonu tanımla; içi std::cout << "merhaba " << name << std::endl; olsun. main'de greet("Ayşe") çağır.
Başlangıç kodu
#include <iostream>
#include <string>
// greet fonksiyonunu buraya tanımla
int main() {
// greet çağrısı (argüman: Ayşe)
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
void greet(std::string name) {
std::cout << "merhaba " << name << std::endl;
}
int main() {
greet("Ayşe");
return 0;
}Beklenen çıktı
merhaba Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parametre ve argümanı eşle
| Kavram | Anlamı |
|---|---|
void greet(std::string name) |
Tanım |
greet("Ayşe") |
Çağrı |
name |
Parametre |
"Ayşe" |
Argüman |
2 void inc(int x) { x++; } çağrısından sonra n ne olur? (n = 5)
int n = 5;
inc(n);- Derleme hatası
- n tanımsız olur
- n 6 olur
- n hâlâ 5 Doğru cevap
Açıklama: değerle çağrıda n'nin kopyası değişir, n kendisi 5 kalır.
3 Parametreli fonksiyonu tamamla
void greet(std::string ____) { std::cout << name; }
void greet(std::string name) { std::cout << name; }
Açıklama: name parametresi fonksiyon içinde kullanılır.