C++ pointerın mantığı nedir?

Bu konuyu okuyanlar

_Trinity_

Asistan
Katılım
25 Ekim 2018
Mesajlar
137
Reaksiyon puanı
81
Puanları
28
Yaş
24
Kaç saatir anlamaya çalışıyorum kaç video izledim kaç örneğe baktım ama yok anlayamıyorum,şimdi bu pointer ne yapıyor ve neden bu kadar gerekli mantığını anlamak istiyorum yardımcı olur musunuz?
 

Görkem Say

Müdavim
Emektar
Katılım
22 Nisan 2017
Mesajlar
25,734
Çözümler
8
Reaksiyon puanı
24,982
Puanları
113
RAM'de karışık depolanan verilerin birbiriyle bağlantısını sağlıyor diyebilirim kısaca. Sonuçta sistem bellekte yer açarken bu konu bununla ilgili bunu da bunun yanına koyayım demiyor uygun boş bir yere rastgele(aslında tam rastgele değil ama böyle kabul edilebilir) yerleştiriyor. İşte bu yerleştirilen verilerin birbiriyle bağlantısına yarıyor. Başka işlere de yarıyor ama en net anlatan videolardan birisi diyebilirim.

 

_Trinity_

Asistan
Katılım
25 Ekim 2018
Mesajlar
137
Reaksiyon puanı
81
Puanları
28
Yaş
24
RAM'de karışık depolanan verilerin birbiriyle bağlantısını sağlıyor diyebilirim kısaca. Sonuçta sistem bellekte yer açarken bu konu bununla ilgili bunu da bunun yanına koyayım demiyor uygun boş bir yere rastgele(aslında tam rastgele değil ama böyle kabul edilebilir) yerleştiriyor. İşte bu yerleştirilen verilerin birbiriyle bağlantısına yarıyor. Başka işlere de yarıyor ama en net anlatan videolardan birisi diyebilirim.



Onu da izlemiştim neyse sabah beynim dinlendikten sonra tekrar dinleyim bugün fazla yordum şuan bilgi kabul etmiyor :/
 

Görkem Say

Müdavim
Emektar
Katılım
22 Nisan 2017
Mesajlar
25,734
Çözümler
8
Reaksiyon puanı
24,982
Puanları
113
Onu da izlemiştim neyse sabah beynim dinlendikten sonra tekrar dinleyim bugün fazla yordum şuan bilgi kabul etmiyor :/
Kısaca kolay ulaşım ve belleği daha etkin kullanmaya yarıyor olay bu :)
 

_Trinity_

Asistan
Katılım
25 Ekim 2018
Mesajlar
137
Reaksiyon puanı
81
Puanları
28
Yaş
24
Yani bir değişkenin hem adresini hem de içindeki değeri tutuyor ve kolay ulaşım mı sağlıyor böyle mi

---- Mesajlar birleştirildi ----

Kısaca kolay ulaşım ve belleği daha etkin kullanmaya yarıyor olay bu :)

Yani bir değişkenin hem adresini hem de içindeki değeri tutuyor ve kolay ulaşım mı sağlıyor böyle mi
 
Son düzenleme:

Görkem Say

Müdavim
Emektar
Katılım
22 Nisan 2017
Mesajlar
25,734
Çözümler
8
Reaksiyon puanı
24,982
Puanları
113
İçindekini tutmuyor o zaten bellekte :D Pointer adı üstünde işaret ediyor yön levhası gibi. Bunu yaparken sürekli aynı veriyi yazmak yerine bir pointer ile o verilere çok kolay ulaşabiliyorsun. Veri yapıları dersi aldığın zaman daha net anlarsın diye düşünüyorum :)
 

_Trinity_

Asistan
Katılım
25 Ekim 2018
Mesajlar
137
Reaksiyon puanı
81
Puanları
28
Yaş
24
İçindekini tutmuyor o zaten bellekte :D Pointer adı üstünde işaret ediyor yön levhası gibi. Bunu yaparken sürekli aynı veriyi yazmak yerine bir pointer ile o verilere çok kolay ulaşabiliyorsun. Veri yapıları dersi aldığın zaman daha net anlarsın diye düşünüyorum :)
Ben de niye anlamıyorum diyorum veri yapıları hakkında birazcık bile bilgim yok kesin o yüzden :D Neyse biraz anladım gibi oldu :D
 

kmurat

Müdavim
Katılım
8 Şubat 2014
Mesajlar
8,486
Çözümler
3
Reaksiyon puanı
3,709
Puanları
113
Adres belirliyor olarak aklında tutabilirsin.

Mesela bir kız arkadaşını ziyaret edeceksin ama evi bilmiyorsun. Telefon açıp adresini soruyorsun, o da sana söylüyor. Sende söylenen adresi arıyorsun ve kız arkadaşını buluyorsun. İyi sohbetler.

Kafanda bu tür ve benzeri benzetmeler yaparsan, daha iyi anlayabilirsin. (Buna köprü kurmak denir)
 

Amenofis

Öğrenci
Katılım
27 Aralık 2010
Mesajlar
36
Reaksiyon puanı
9
Puanları
8
Veriler bellekte tutulurlar ve bellekteki her verinin bir adresi vardır. Global değişkenler statik verilerdir ve adresleri önceden bilinir. Bu verilere ismini kullanarak erişmek mümkündür. Mesela;

int a;

int main()
{
a = 12;
...

Buradaki a sürekli olarak sabit yerde durur, adresi her zaman bellidir. a = xx; yaptığımız zaman a hangi adreste duruyorsa o adrese xx yazılır.
Ancak çoğu zaman adresleri önceden bilmek mümkün değildir. Mesela bize 1 kb yer lazım oldu ve bunu işletim sisteminden istedik.

int *a = (int *) malloc(1024);

Burada bize tahsis edilen bellek herhangi bir bölgeden olabilir, adresini önceden bilemeyiz. Bu yüzden bu bölgede işlem yapabilmek için işletim sisteminin bize tahsis ettiği yerin başlangıç adresini bir değişken içinde tutmak zorundayız. İşte bu adres tutan değişkene pointer denir. Aslında bu adresler bildiğin sayıdır, yani bu adresi sıradan bir değişken içinde de tutabiliriz ama bu birçok çakışmaya yol açar. Bu yüzden adamlar adres tutmak için ayrı bir tür eklemişler dile. Bu sayede derleyici bu sayının sıradan bir sayı değil bir bellek adresi olduğunu bilir, ona göre işlem yapar.

Merak ettiklerin varsa sorabilirsin.
 

memo0652

Asistan
Katılım
10 Ağustos 2014
Mesajlar
253
Reaksiyon puanı
30
Puanları
28
Pointerlar basit tanımı senin kaydettiğin verilerin bellekteki adreslerini tutan işaretci veya gösterici gibi çevrilen ve senin tuttuğun verileri adresinden kullanabildiğin bir çeşit dizidir. Anlamından çok mantığına ve birkaç örnekte kullanışına bakarsan anlayabilirsin. Basit örneklerle başlayıp zorlara doğru ilerle kolay gelsin
 

janissery

Öğrenci
Katılım
4 Nisan 2018
Mesajlar
50
Reaksiyon puanı
18
Puanları
8
Yaş
31
Çok daha basit yoldan anlayabilirsin. Verilerin tutulduğu yeri eviniz olarak düşün, evdeki herşeyin yerini kim bilir? Annen bilir. Bu durumda annen pointer. Diyelim ki evde cüzdanını, saatini ve şapkanı bulman gerekiyor. 3'ünü de perişan perişan ararsan yorulursun, sinirlenirsin... Her seferinde arayıp bulmak yerine annene sorarsın ve hızlı bir şekilde elinle koymuş gibi bulursun. Pointer bundan ibaret :)
 

_Trinity_

Asistan
Katılım
25 Ekim 2018
Mesajlar
137
Reaksiyon puanı
81
Puanları
28
Yaş
24
Çok daha basit yoldan anlayabilirsin. Verilerin tutulduğu yeri eviniz olarak düşün, evdeki herşeyin yerini kim bilir? Annen bilir. Bu durumda annen pointer. Diyelim ki evde cüzdanını, saatini ve şapkanı bulman gerekiyor. 3'ünü de perişan perişan ararsan yorulursun, sinirlenirsin... Her seferinde arayıp bulmak yerine annene sorarsın ve hızlı bir şekilde elinle koymuş gibi bulursun. Pointer bundan ibaret :)
Efsane anlatış?teşekkür ederim
 
Üst