İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

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

_Trinity_06.01.201911 cevap3.518 görüntüleme
2018'den beri136 mesaj
#1
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?
Cevaplar
2017'den beri26 bin mesaj
#2
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_ Konuyu açan
2018'den beri136 mesaj
#3
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 :/
2017'den beri26 bin mesaj
#4
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_ Konuyu açan
2018'den beri136 mesaj
#5
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
düzenlendi
2017'den beri26 bin mesaj
#6
İç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_ Konuyu açan
2018'den beri136 mesaj
#7
İç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
2014'den beri9.359 mesaj
#8
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)
2010'den beri36 mesaj
#9
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.
2014'den beri253 mesaj
#10
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
2018'den beri50 mesaj
#11
Ç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 :)
👍 2
_Trinity_ Konuyu açan
2018'den beri136 mesaj
#12
Ç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
👍 1

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.