Sobes.tech
Junior

C/C++ dilinde referans ile gösterici arasındaki farkları anlatın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir referans, mevcut bir nesne için takma ad olarak düşünülebilir; bir gösterici, nesnenin bellek adresini içerir.

Özellik Referans Gösterici
Başlatma Bildirimde başlatılmalı. Başlatılmayabilir.
Yeniden atama Başlatmadan sonra yeniden atanamaz. Başka bir nesneye işaret edebilir.
Null değeri null olamaz. nullptr (C++11) veya NULL (C/C++) olabilir.
Dizi indeksleme Doğrudan gösterici aritmetiği desteklemez. Gösterici aritmetiği destekler.
Operatörler Doğrudan kullanılır (. üyeler için). * ile çözümleme, -> ile üyeler.
Boyut Kendi boyutu yoktur, nesnenin boyutuna referans verir. Sistemdeki adres boyutuna uygun boyuta sahiptir (genellikle 4 veya 8 bayt).
Bellek tahsisi Açık bellek tahsisi/serbest bırakma gerekmez. new/delete gerekebilir (C++'da).
Kullanım Sık sık fonksiyon parametreleri olarak referans ile geçmek için kullanılır. Dinamik bellek tahsisi, düşük seviyeli erişim için.
// Referans kullanım örneği
int x = 10;
int& ref = x; // ref, x için takma ad
ref = 20;     // x artık 20

// Gösterici kullanım örneği
int y = 30;
int* ptr = &y; // ptr, y'nin adresine işaret eder
*ptr = 40;    // y artık 40

// Gösterici nullptr olabilir
int* null_ptr = nullptr;