Ana içeriğe geç
Modül 3 · Ders 2 ders 2Kurstaki 8/18~12 min
Modül dersleri (2/2)

Değere ve referansa göre geçiş

C++'da, bir işleve bir argüman ilettiğinizde, bunu yapmanın iki ana yolu vardır: değere göre veya referansa göre.

Bu ayrımı anlamak hem program doğruluğu hem de performans optimizasyonu açısından önemlidir.

Değere Göre Aktar (Kopyala)

Varsayılan olarak C++ argümanları değere göre iletir. Bu, bellekte verinin bir kopyasının oluşturulduğu anlamına gelir. Fonksiyonun içinde yapılan herhangi bir değişiklik, dışarıdaki orijinal değişkeni etkilemeyecektir:

C++
#include <iostream>

void increment(int n) {
    n++; // Modifies only the local copy
}

int main() {
    int x = 5;
    increment(x);
    std::cout << x << std::endl; // Prints 5, x remains unchanged!
    return 0;
}

Referansa Göre Geçiş (&)

İşlevin orijinal değişkeni değiştirebilmesini istiyorsanız veya büyük nesnelerin (uzun dizeler veya vektörler gibi) kopyalanmasını önlemek istiyorsanız referansa göre geçirme seçeneğini kullanmalısınız.

Parametre türünün arkasına & sembolü eklenerek bir referans bildirilir:

C++
#include <iostream>

void incrementRef(int& n) {
    n++; // Modifies the original variable directly
}

int main() {
    int x = 5;
    incrementRef(x);
    std::cout << x << std::endl; // Prints 6!
    return 0;
}

int& n parametresi bir kopya değil, işlev çağrılırken iletilen x değişkenine bir takma ad (doğrudan başvuru).

Kendin dene

Egzersiz#cpp.m3.l2.e1
Denemeler: 0Yükleniyor…

Bir n tamsayısına başvuru alan (int& n kullanarak) ve değerini iki katına çıkaran (n = n * 2) geçersiz dönüş türüne sahip doubleNumber adlı bir işlev tanımlayın. Bunu ana olarak 10 olarak başlatılan val değişkenini ileterek çağırın, ardından val yazdırın.

Düzenleyici yükleniyor…
İpucu göster

İşlev imzası, bir başvuruyu belirtmek için türden sonra `&`karakterini kullanır:`void doubleNumber(int& n)`.

3 denemeden sonra çözüm mevcut

Egzersiz#cpp.m3.l2.e2
Denemeler: 0Yükleniyor…

A ve b olmak üzere iki tam sayı referansını (int& a, int& b) alan ve bunların değerlerini geçici bir temp değişkeni kullanarak değiştiren swap adında bir işlev tanımlayın. X ve y'yi değiştirmek için main'i çağırın ve ardından bunları yazdırın.

Düzenleyici yükleniyor…
İpucu göster

'int temp = a;' kullanın bir = b; b = temp;` değerleri değiştirmek için.

3 denemeden sonra çözüm mevcut