Bir fonksiyona parametre geçirdiğiniz zaman parametrenin pointer’ının değil de direk olarak değerinin geçmesidir. İlkel (primitive) veri türleri direk olarak böyle çalışır. Mesala;
int i = 5; int kare(int j) { int sonuc = j * j; j = 0; // j değişkeninin değeri 0 olur fakat, i değişkeni aynı kalır return sonuc; }
Yukarıdaki örnekde kare fonksiyonuna i değeri geçirilmiştir. j = 0 satırı özellikle durumu anlatılmak için eklenmiştir. j değişkenine 0 değeri atandığı zaman i değişkeninin değeri değişmez. Çünkü kare fonksiyonu çağrıldığı yerde i değişkeni içindeki değer olan 5 fonksiyona geçirilecek. Bundan sonra iki farklı değişkende 5 değeri olacak. Siz i değişkenini değiştirirseniz j, ya da j yi değiştirirseniz i etkilenmeyecek. Buna pass-by-value deniyor. Bu durumun diğer durumdaki örneği pass-by-refrence oluyor ki aşağıdaki linkten okuyabilirsiniz.
Bir fonksiyona parametre geçirdiğiniz zaman parametrenin pointer’ının değil de direk olarak değerinin geçmesidir. İlkel (primitive) veri türleri direk olarak böyle çalışır. Mesala;
Yukarıdaki örnekde kare fonksiyonuna i değeri geçirilmiştir. j = 0 satırı özellikle durumu anlatılmak için eklenmiştir. j değişkenine 0 değeri atandığı zaman i değişkeninin değeri değişmez. Çünkü kare fonksiyonu çağrıldığı yerde i değişkeni içindeki değer olan 5 fonksiyona geçirilecek. Bundan sonra iki farklı değişkende 5 değeri olacak. Siz i değişkenini değiştirirseniz j, ya da j yi değiştirirseniz i etkilenmeyecek. Buna pass-by-value deniyor. Bu durumun diğer durumdaki örneği pass-by-refrence oluyor ki aşağıdaki linkten okuyabilirsiniz.
http://hasscript.com/671/pass-by-reference-nedir