Referans Fonksiyonu Nedir? Test 1

Soru 10 / 10

Aşağıdaki kodda, 'arttir' fonksiyonu çağrıldıktan sonra 'x' değişkeninin değeri ne olur? ```cpp void arttir(int &sayi) { sayi++; } int main() { int x = 10; arttir(x); } ```

A) 10
B) 11
C) 0
D) Derleme hatası

Merhaba sevgili öğrenciler!

Bu soruda, C++ dilinde bir fonksiyonun parametre geçirme yöntemlerinden biri olan "referans ile geçirme" (pass by reference) konusunu inceliyoruz. Kodun adım adım nasıl çalıştığını anlayalım:

  • `int main() { ... }` bloğu: Programın çalışmaya başladığı ana fonksiyondur.
  • `int x = 10;`: `main` fonksiyonu içinde `x` adında bir tam sayı değişkeni tanımlanır ve başlangıç değeri olarak `10` atanır. Bu noktada `x`'in değeri `10`'dur.
  • `arttir(x);`: Burada `arttir` fonksiyonu çağrılır ve `x` değişkeni bu fonksiyona argüman olarak gönderilir.
  • `void arttir(int &sayi) { ... }`: Bu, `arttir` fonksiyonunun tanımıdır. Dikkat etmemiz gereken en önemli kısım `int &sayi` ifadesidir.
    • Buradaki `&` işareti, `sayi` parametresinin bir referans olduğunu belirtir. Yani `sayi`, `main` fonksiyonundan gönderilen `x` değişkeninin kendisinin bir takma adıdır (alias). `sayi` üzerinde yapılan herhangi bir değişiklik doğrudan `x` değişkenini etkiler.
    • Eğer `&` olmasaydı (`int sayi` şeklinde olsaydı), `sayi` `x`'in bir kopyası olurdu ve `sayi` üzerinde yapılan değişiklikler `x`'i etkilemezdi.
  • `sayi++;`: `arttir` fonksiyonunun içinde `sayi` değişkeninin değeri bir artırılır. `sayi`, `x`'in referansı olduğu için, bu işlem aslında `x`'in değerini bir artırır.
    • `x`'in değeri `10` idi.
    • `sayi++` işlemi sonucunda `x`'in değeri `11` olur.
  • `arttir` fonksiyonu tamamlandıktan sonra program `main` fonksiyonuna geri döner. Bu noktada `x` değişkeninin değeri artık `11`'dir.

Bu açıklamalara göre, `arttir` fonksiyonu çağrıldıktan sonra `x` değişkeninin değeri `11` olur.

Cevap B seçeneğidir.

↩️ Soruya Dön
✨ Konuları Gir, Yapay Zeka Saniyeler İçinde Sınavını Üretsin!
1 2 3 4 5 6 7 8 9 10
Ana Konuya Dön:
Geri Dön