Kayıtlar

call-by-reference etiketine sahip yayınlar gösteriliyor

32 - Call By Reference ve Call By Value

Fonksiyonlara veri geçirilirken iki method kullanılır: referans ile çağırma methodu ve değer ile çağırma methodu. Bu methodlar ayrıca pass-by-reference ve pass-by-value olarak da isimlendirilirler. Call by value methodunda data fonksiyona geçirildiğinde geçirilen verinin bir kopyası oluşturulur. Çağrılan fonksiyon bu kopya ile çalışırken geri dönüşte çağıran fonksiyondaki asıl değişken, çağrılan fonksiyondaki yapılan işlemler nedeniyle oluşan değişikliklerden etkilenmez. Bu değişiklik sadece kopya üzerinde ve çağrılan fonksiyon içinde meydana gelir. #include <stdio.h> void call_by_value(int x) { printf("Fonksiyon icinde degisiklikten once x = %d \n", x); x += 10; printf("Fonksiyon icinde degisiklikten sonra x = %d \n", x); } int main() { int x = 10; printf("Fonksiyon cagrilmadan once ana fonksiyonda x = %d \n", x); call_by_value(x); printf("Fonksiyon cagrildiktan sonra ana fonksiyonda x = %d \n", x); return 0; } Öncelikl...

31 : Fonksiyonda Struct Kullanımı

Struct tipini fonksiyonlarda parametre ya da dönüş değeri olarak kullanabiliriz. Struct için fonksiyonda ekstra özel bir konu yok. Bir önceki yazıda kullandığımız özellikler ile fonksiyonlarda struct tipli değişkenleri kullanabiliriz. Bir fonksiyon ile mainde oluşturduğum bir ogrencinin bilgilerini dolduracağım. Daha sonra bir fonksiyon ile bu ogrencinin adını ve soyadını yazdıracağım. Başka bir fonksiyon ile de numarasını ve not ortalamasını yazdıracağım. Adını yazdırdığım fonksiyona parametre olarak structı verirken numarasını yazdırdığım fonksiyona parametre olarak structın adresini vereceğim. Bu iki kullanım arasında farklar var. Bu farkları başka bir yazıda açıklamaya çalışacağım. Bu yazıda sadece bu farkların sözdiziminde nasıl görüldüğünü göstereceğim. #include <stdio.h> #include <string.h> typedef struct ogrenci { char ad[50]; char soyad[50]; int numara; float not; }ogrenci; ogrenci bilgiDoldur(); void adSoyadYazdir(ogrenci bilgi); void notNumaraYa...