Junior
Referans ile aktarım nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Referans ile iletim (pass by reference), bir fonksiyona, veri saklayan bellek alanının adresinin (referansın) iletildiği bir mekanizmadır. Sonuç olarak, fonksiyon içinde yapılan herhangi bir değişiklik, fonksiyon dışındaki orijinal değişkene yansır.
Ana özellikler:
- Bellek adresi iletilir, değer kopyası değil.
- Fonksiyon doğrudan orijinal verilerle çalışır.
- Fonksiyon içindeki değişiklikler, fonksiyon tamamlandıktan sonra da kalır.
- Birçok programlama dilinde nesneler, diziler ve diğer referans türleri için geçerlidir.
- Bazı dillerde (örneğin, C++), göstericiler veya referanslar kullanılarak primitif türler açıkça referansla geçirilebilir.
Python'da kod örneği:
# Liste aktarımı (referans tipi)
def modify_list(my_list):
my_list.append(4) # Orijinal listeyi değiştirir
data = [1, 2, 3]
modify_list(data)
print(data) # [1, 2, 3, 4] yazdırır
# Sayı aktarımı (primitif tip - Python'da değer ile geçiş)
def modify_number(my_number):
my_number += 1 # Yerel kopya oluşturulur ve değiştirilir
value = 5
modify_number(value)
print(value) # 5 yazdırır - orijinal değer değişmedi
C++ örneği:
#include <iostream>
// Referans ile iletim
void modify_value_ref(int &val) {
val += 10; // Orijinal değişkeni değiştirir
}
// Değer ile iletim (karşılaştırma için)
void modify_value_copy(int val) {
val += 10; // Yerel kopyayı değiştirir
}
int main() {
int a = 5;
modify_value_ref(a);
std::cout << "Referans sonrası: " << a << std::endl; // 15 yazdırır
int b = 5;
modify_value_copy(b);
std::cout << "Kopya sonrası: " << b << std::endl; // 5 yazdırır
return 0;
}
Avantajlar:
- Büyük veri hacimleriyle çalışırken etkilidir, çünkü kopyalama gerekmez.
- Fonksiyonların, argümanlar aracılığıyla birden fazla değeri değiştirmesine izin verir.
Dezavantajlar:
- Fonksiyon, isim veya belge içinde açıkça belirtilmediği sürece, argümanları değiştirdiğinde kodun tahmin edilmesini zorlaştırabilir.
- İstenmeyen yan etkileri önlemek için dikkatli olunmalıdır.