# 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**

```cpp
#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**

```cpp
#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**

```cpp
#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;
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yavuzlar.org/egitim/c-plus-plus/2.0-fonksiyonlar/1.19-references.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
