Bağımsız değişkenleri, fonksiyona iletirken kullanılan argümanlar fonksiyon imzasındaki bildirim parametrelerine kopyalanır. Bu durumda, fonksiyon içindeki parametreye yapılan değişikliklerin argüman üzerinde bir etkisi yoktur.
Varsayılan olarak, C ++ bağımsız değişkenleri iletmek için çağrıya göre değer kullanır. Genel olarak, bu, bir fonksiyon içindeki kodun fonksiyonu çağırmak için kullanılan argümanları değiştiremeyeceği anlamına gelir.
Swap() fonksiyonunu bu işlem için örnek olarak verebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 | // swap fonksiyonunun tanımlanması void swap(int x, int y) { int temp; temp = x; /* x değerini temp içine aktar */ x = y; /* y değerini x'e kopyala*/ y = temp; /* temp içindeki değeri y içine kopyala */ return; } |
Şimdi swap fonksiyonuna parametre geçerek kullanalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> using namespace std; // fonksiyon bildirimi void swap(int x, int y); int main () { // yerel değişkenler int a = 100; int b = 200; cout << "Degisiklik yapmadan once a :" << a << endl; cout << "Degisiklik yapmadan once b :" << b << endl; // swap fonksiyonunu calistirma swap(a, b); cout << "Degisiklik sonrasi a :" << a << endl; cout << "Degisiklik sonrasi b :" << b << endl; return 0; } |
Fonksiyon kullanımına aşina değilseniz bir an a ile b değişkenlerinin içindeki değerlerin değiştiğini düşünebilirsiniz. Ancak yukarıdaki yaptığımız tanımlamadan da faydalanarak tekrar belirtmek isterim. Fonksiyon çağrılırken gönderilen parametreler fonksiyondaki paramektelere KOPYALAnır.
Doğal olarak değişiklik swap içinde olacağı için ana programda her hangi bir değişiklik gerçekleşmemiş olur.
1 2 3 4 5 6 | Degisikli oncesi a :100 Degisikli oncesi b :200 Degisiklik sonrasi a :100 Degisiklik sonrasi b :200 |
[…] Değer ile Çağırma: Bu yöntem, bir argümanın gerçek değerini fonksiyonun resmi parametresine kopyalar. Bu durumda, işlevin içindeki parametreye yapılan değişikliklerin argüman üzerinde bir etkisi yoktur. […]