Dizilerin Fonksiyonlara Parametre Olarak Aktarılması

Soru Çözümü: C++ Dizilerin Fonksiyonlara Gönderilmesi (Pointer Decay)
💡 Çözümü Gör (Tıkla - Öğren)
✅ Doğru Cevap: B) 99 olur (Dizi adresi işaretçi gibi aktarılır)

Detaylı Açıklama:

  • C ve C++ dillerinde diziler fonksiyona parametre olarak verilirken değerleriyle kopyalanmaz (copy overhead oluşmaması için).
  • Bunun yerine dizi adı, dizinin ilk elemanının bellek adresine dönüştürülerek aktarılır (bu duruma Array-to-Pointer Decay denir). Yani void guncelle(int d[]) ifadesi aslında void guncelle(int* d) ile aynıdır.
  • Fonksiyon içerisindeki d[0] = 99; satırı doğrudan main fonksiyonundaki orijinal sayilar[0] elemanının bellek adresindeki değeri değiştirir.
  • Bu nedenle fonksiyon çağrısı bittikten sonra sayilar[0] ekrana yazdırıldığında sonuç 99 olur.

Yorum Gönder

0 Yorumlar