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

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


_Trinity_

Asistan
Katılım
25 Eki 2018
Mesajlar
139
Puanları
28
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

Arise, Arise Riders of Theoden! Ride now! Death!
Yönetici
Moderatör
Katılım
22 Nis 2017
Mesajlar
12,223
Puanları
113
Konum
Laurelindórinan
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 Eki 2018
Mesajlar
139
Puanları
28
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 :/
 

_Trinity_

Asistan
Katılım
25 Eki 2018
Mesajlar
139
Puanları
28
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

Arise, Arise Riders of Theoden! Ride now! Death!
Yönetici
Moderatör
Katılım
22 Nis 2017
Mesajlar
12,223
Puanları
113
Konum
Laurelindórinan
İç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 Eki 2018
Mesajlar
139
Puanları
28
İç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

Dekan
Katılım
8 Şub 2014
Mesajlar
5,096
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

Üyecik
Katılım
27 Ara 2010
Mesajlar
20
Puanları
3
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ğu 2014
Mesajlar
247
Puanları
28
Konum
Ankara
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

Üyecik
Katılım
4 Nis 2018
Mesajlar
17
Puanları
3
Konum
Adana
Ç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 Eki 2018
Mesajlar
139
Puanları
28
Ç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
stat counter