11.5 Fonksiyon Parametresi Olan Göstericiler

11.5   Fonksiyon Parametresi Olan Göstericiler

C (ve C++) programlama dilinde fonksiyon parametreleri değer geçerek (pass by value) yada adres geçerek (pass by reference) olarak geçilebilir. Bölüm 8’deki uygulamalarda fonksiyonlara parametreler değer geçerek taşınmıştı. Bu şekilde geçirilen parametreler, fonksiyon içersinde değiştirilse bile, fonksiyon çağılıldıktan sonra bu değişim çağrılan yerdeki değerini değiştirmez. Fakat, bir parametre adres geçerek aktarılısa, fonksiyon içindeki değişikler geçilen parametreyi etkiler. Adres geçerek aktarım, gösterici kullanmayı zorunlu kılar.

Örneğin, Program 11.5’de fonksiyonlara değer ve adres geçerek aktarımın nasıl yapılacağı gösterilmiştir.

Program 11.5: Bir değişkenin içeriğini ve adresini ekrana yazdırma

 

5. ve 6. satırlada kendine geçilen parametrenin değerini alan f1 fonksiyonu ve parametrenin adresini alan f2 adlı iki fonksiyon örneği belirtilmişdir. 11. satırdaki x değişkeni 16. ve 21. satırlarda, f1(x) ve f2(&x) fonksiyonlarına, sırasıyla değer ve adres geçerek aktarılmıştır. f1 içinde x (n = 66; işlemi ile) değişime uğramış, fakat çağrılma işleminin sonucunda, x‘in değeri değişmemiştir. Ancak f2 içinde x‘in ( *n = 77 işlemi ile) değişimi, çağrıldıktan sonrada korunmuştur. Yani, adres geçerek yaplıan aktarımda, f2‘ye aktarılan değer değil adres olduğu için, yollanan x parametresi f2 içinde değişikliğe uğrayacak ve bu değişim çağrıldığı 21. satırdan itibaren devam edecektir.

ÇIKTI

 

Program 11.6’da iki tamsayı değişkeninin nasıl takas (swap) edileceği gösterilmiştir. Bu işlemi C porgramlama dilinde, eğer değişkenler global olarak bildirilmemişse, gösterici kullanmadan bu işlemi yapmak imkansızdır.

Program 11.6: İki tamsayının birbiri ile takas edilmesi

ÇIKTI

 

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.