C++ Pointers (Göstericiler) | 1

C++'da göstericiler(pointers) memory address belirtir. Veri'nin saklandığı yere işaret eder. Değişkenler bir verinin tuttuğu değeri belirtirken, göstericiler bir veriyi tutan değişkenlerin adresini içerir.

Pointer'ların olduğu her dilde olduğu gibi C++'da da bir gösterici tanımlamak için bildirimi yapılmalıdır, bu değişken isminin önüne yıldız(*) işareti konarak yapılır.

*[pointer_name] şeklinde tanımlanabilir. Örnek olarak;

int p1; // Bir gösterici değildir.
int *p2 // Başına * koyarak belirttiğimiz için bir göstericidir.

int p3, *p4 // p4 bir gösterici fakat p3 bir gösterici değildir.

& Operator

& ifadesi adres operatörüdür. Bir değişkene atanıp kullanılabilir. Örneğin;

int n1 = 20;
int *p1;
p1 = &n1

Bu durumda p1 bize n1'in bellekte tuttuğu adresi verecektir.



Şekildeki gibi.

Tabi ki gerçekte adresler bellekte bu şekilde tutulmaz o yüzden beraber bir örnek yapalım ve görelim.





Gördüğünüz gibi çıktımız bu şekilde. p1'in değeri adres belirtirken; gösterdiği yerdeki aldığı değişken 20. Yani * operatörü kullanıldığında gösterdiği yerdeki değişkeni döndürür.

Pointer Arithmetic

C++'da pointerlar ile dolaylı olarak adreslerle tamsayı türünden işlemler yapmak mümkün (aynı tür adresler için karşılaştırma operatörü de kullanılabilir). Örnek olarak bir pointer'ın değeri 1 arttığında pointer'ın tuttuğu değişkenin bellekte kapladığı yer kadar yer atlar. Ne demek istiyorum?



int veri tipi bellekte 4 byte'lık yer tuttuğu için bellekte 4 yer atlamış oldu.

Göstericiler ile ilgili değinebileceğimiz daha çok şey var, onları da diğer bölümlere bırakıyorum.
Hata veya eksik bilgi varsa lütfen belirtin.