1.19 References
C++'da referans, bir değişkenin başka bir değişkenle olan ilişkisidir. Referanslar, bir değişkenin bellekteki adresine işaret eden alternatif isimler olarak düşünülebilir. Bu, belirli bir değişkenin bellekteki yerini değiştirmeden, o değişken üzerinde işlem yapmanıza olanak tanır.
Referans Oluşturma
Bir referans oluşturmak için, değişkenin tipinin ardından &
işaretini kullanarak referansı tanımlarsınız.
Örnek: Basit Referans Oluşturma
#include <iostream>
using namespace std;
int main() {
int original = 30; // Değişken tanımı
int &ref = original; // Referans oluşturma
cout << "Orijinal Değişken: " << original << endl; // 30
cout << "Referans Değişken: " << ref << endl; // 30
ref = 50; // Referans üzerinden değeri değiştirme
cout << "Orijinal Değişken (değiştirildikten sonra): " << original << endl; // 50
cout << "Referans Değişken (değiştirildikten sonra): " << ref << endl; // 50
return 0;
}
Yukarıdaki örnekte, ref
değişkeni original
değişkenine bir referans olarak tanımlanmıştır. ref
üzerinden yapılan değişiklikler, original
üzerinde de değişiklik yapar.
Bellek Adresi
Her değişken, bellekte bir adrese sahiptir. &
operatörü kullanarak bir değişkenin bellek adresini alabilirsiniz.
Örnek: Bellek Adresini Alma
#include <iostream>
using namespace std;
int main() {
int number = 42; // Değişken tanımı
cout << "Değişkenin Değeri: " << number << endl; // 42
cout << "Değişkenin Bellek Adresi: " << &number << endl; // Bellek adresini yazdırma
return 0;
}
Referansların Avantajları
Bellek Verimliliği: Referanslar, değişkenin değerini kopyalamak yerine doğrudan bellekteki adresine işaret eder. Bu, bellek kullanımını optimize eder.
Fonksiyonlarda Kullanım: Fonksiyon parametreleri olarak referanslar kullanarak, fonksiyonların doğrudan değişken üzerinde işlem yapmasını sağlayabilirsiniz.
Örnek: Fonksiyona Referans Gönderme
#include <iostream>
using namespace std;
void increment(int &num) {
num++; // Referans üzerinden değeri artırma
}
int main() {
int value = 10;
cout << "Başlangıç Değeri: " << value << endl; // 10
increment(value); // value referans olarak gönderiliyor
cout << "Artırıldıktan Sonra: " << value << endl; // 11
return 0;
}
Last updated
Was this helpful?