Pointer Flashcards

1
Q

Neden Pointer

A

Örneğin a = 2; diye bir atama yaptığımızda atama yaptığımız scope bunun yerini görür(adresler sayesinde). Ancak biz pointer ile bu yerin adresini ayrıca belirtirsek farklı fonksiyonlarda bu değere ulaşabiliriz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
A

Pointerlarda adres bölgeleri tutulur.

int*ptr ile tanımlanır daha sonra;
ptr =&a ile a nın adres bölgesi bu pointera tanımlanır.

Bu adresi bilen her fonksiyon programın her yerinden bu bilgiye ulaşabilir oluyor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Çalışma mantığı

A

int tipinden bir değişken verdiğimde derleyici bana 4 bytelık bir yer ayırıyor. a nın başlangıç adresinin kendine atıyor ama benden saklıyor.
Daha sonra pointer oluştururken kendim 4 bytelık bir alan yaratıyorum. Bunu adres gösteren bir adres yaratmak için kullanıyorum.
Derleyici runtime da a yı gördüğü yerde o adrese gidiyor ve cout görürse 4 bytelık bir okuma ile cout değişkenine verip bu değeri yazdırıyor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Pointer içeriğine ulaşma

A

Tanımladıktan sonra *ptr ile ptr nin içeriğindeki adres karşılığına ulaşabilirim.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Pointer aritmetiği

A

int = 4byte
double = 8byte yer tutar

Bu iki türden de pointer oluşturursak ve
ptr++ ile adresler arasında gezinir ve byte değerine göre arttırır ya da azaltır.

mesela int pointeri için ptr++ = adress değerini 4 (byte) arttırır

How well did you know this?
1
Not at all
2
3
4
5
Perfectly