C++ Pointers | 1

Ego1st

Uzman üye
15 Mar 2018
1,109
25
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.

<type> *[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.

1.png


Şekildeki gibi.

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

2.png


3.png


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?

4.png


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.
 

CyberXhackk

Kıdemli Üye
13 Mar 2016
3,132
10
C/C++ Dev.
Biraz amatorce bir yazi olmus fakat elinize saglik, dipnot : C++'da zorunlu olmadikca pointer kullanilmasi hos bir durum degil.
 

Ego1st

Uzman üye
15 Mar 2018
1,109
25
Biraz amatorce bir yazi olmus fakat elinize saglik, dipnot : C++'da zorunlu olmadikca pointer kullanilmasi hos bir durum degil.

Teşekkürler, devamını getireceğim daha anlatılacak çok konu var :)


Teşekkürler :)

Devamını bekleriz, eline sağlık

Gelecek, teşekkürler .)


Teşekkürler :)

Elinize emeğinize sağlık :))

Teşekkürler :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.