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ındavoid guncelle(int* d)ile aynıdır. - Fonksiyon içerisindeki
d[0] = 99;satırı doğrudanmainfonksiyonundaki orijinalsayilar[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.

0 Yorumlar