Giriş Yap Kayıt ol Online Üyeler Aktif Konular Arama Üyeler Forum Kuralları
Tahribat.Com | Pointer‘lar Ne Işe Yarar Ve Ne Gibi Faydalar Sağlar.
Tahribat.Com Forumları
C - C++
      Pointer‘lar Ne Işe Yarar Ve Ne Gibi Faydalar Sağlar.
Bu Bölümde yeni konu açmak için tıklayın Konuyu cevaplamak için tık...
Konu 18 Mayis 2011 (Çarsamba) 12:46 tarihinde açıldı. Kısayol | Alıntı yap | Özel Mesaj
sokoban


Kayıt : 23 Ocak 2010
Erkek Üye
 

Forumda arama yaptım çok eski bir konu var ondada çok detaya inilmemiş yüzeysel bilgiler var.Bu pointerların tam olarak kullanım amacı nedir / nasıl kullanılır , efektif olarak nasıl kullanabiliriz.C++ altına açtım konuyu ama ben bunları php'de kullanacağım daha çok.


O şimdi asker :F şafak demiş 253 az kaldı geliyorum :D 
18 Mayis 2011 (Çarsamba) 12:59 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Lathedarkman


Kayıt : 5 Mayis 2007
Ankara
Erkek Üye
 

faydası daha az hafıza tüketimi yapar program.


 
18 Mayis 2011 (Çarsamba) 13:53 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
rakkoc


Kayıt : 19 Aralik 2003
ID :10850
Erkek Üye
 

pointerlar (turkceye isaretliyici olarak geciyordu sanirim) C# daki referans etme ile ayni sekilde kullaniliyordu C++ da; obje gonderiminde basina * koyuyorduk galba (yoksa delphidemiydi oyle hatirlamiyorum en son lisede kullandim bunlari)

kullanim mantigi bir objenin bir fonksiona yada classa yollanmasi yerine onun bellekte bulundugu yerin yollanmasi sekildedir. bu sayede 2 tane avantaj elde etmis oluruz.

1. avantajimiz fonksiona referans ile yada point ile yolladigimiz nesne de yaptigimiz degisiklikler return aldiktan sonra ki programda devam eden kisimde aynen gecerlidir

turkcem cok iyi olmadigindan biraz devrik oldu ama soyle ornek vereyim bir degiskene elma yazdin bunu pointer ile yolladigin bir fonksionda armut yaptin sonra ana program dondugunde armut kalacaktir; ama direk yollarsan o fonksion icin ramde yeni bir yer acili (elma clonelanir) yeni acilmis yerde islem yapili (clone uzerinde) sonra program kaldigi yerden devam ederken eski (ilk atanmis elma) uzerinden calismaya devam edilir. Paremetreler den return almaya yaramis oldu bu avantajda

 

2. avantajida ram kullanimi illk avantajin icinde dedigim gibi direk kullanimda Ram de yeni alan acilacaktir; bu alan ram kullanimi artirimi yapacak.

 

2. olan tabiki avantaj ama 1. her zaman avantaj degildir.

 


"AB" aslinda "Atin Bunu" demek :) bilinçlenelim. . . Facebookdaki durumumu begenirmisinler Tahribata gelmisler galba "Profilme yorum yaparmisin?"; "Konumu Uplarmisin"; "Pampa el atsana ?" ... 
18 Mayis 2011 (Çarsamba) 14:18 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
sacrifice


Kayıt : 25 Agustos 2005
Hell
Erkek Üye
 

fiziksel belleğin isletim sistemi tarafindan referanslanmis hucrelerine direk erisimdir.

Bazen hafizadan kazanmak adina kullanılabilir.

Ornegin c familyasında fonksiyonlara parametre girdiginde aynı parametreler hafızada duplicate olur.

Bunu engellemek icin kullanabilirsin. Bunun dısında "dynamic processing" mutlaka bunların vasıtasıyla olur.

Java'da pointer yerine daha guvenle kullanabilecegin referans kavrami vardir. Perl'de her ikisi birden fln...


#Coding Sacrifice Perl FSO# 
18 Mayis 2011 (Çarsamba) 14:22 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Jubei


Kayıt : 9 Mart 2008
istanbul
Erkek Üye
 

Pointer diye görünce bende hemen bildiklerimi yazayım dedim ama meğerse benim bildiğim pointer senin bildiğin pointer ile uymuyormuş :)) 


Üzülme Der Mevlana...! İstediğin Bir şey Olmuyorsa Ya Daha İyi Olacağı İçin Yada Gerçekten Olmaması Gerektiği İçindir. 
18 Mayis 2011 (Çarsamba) 14:37 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
sokoban


Kayıt : 23 Ocak 2010
Erkek Üye
 

Jubei bunu yazdı:
-----------------------------

Pointer diye görünce bende hemen bildiklerimi yazayım dedim ama meğerse benim bildiğim pointer senin bildiğin pointer ile uymuyormuş :)) 


-----------------------------

Senin pointer'ıda yaz aga bişey olmaz herkese kapımız açık :F


O şimdi asker :F şafak demiş 253 az kaldı geliyorum :D 
18 Mayis 2011 (Çarsamba) 15:23 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Jubei


Kayıt : 9 Mart 2008
istanbul
Erkek Üye
 

sokoban bunu yazdı:
-----------------------------

Jubei bunu yazdı:
-----------------------------

Pointer diye görünce bende hemen bildiklerimi yazayım dedim ama meğerse benim bildiğim pointer senin bildiğin pointer ile uymuyormuş :)) 


-----------------------------

 

Senin pointer'ıda yaz aga bişey olmaz herkese kapımız açık :F


-----------------------------

Eyvallallh sağolasın,Benim bildiğim ve daha önce kullandığım pointer şudur,doğuda askerlik yapanlar bilir G3 ucuna takılır,çıplak gözle görülmez ve sadece gece görüş ile görünür laser pointer diye geçer nokta göstermek içindir.
Ben demiştim sana benim bildiğim pointer ile senin bildiğin pointer uymuyor diye ama olsun en azından benim bildiğim pointer,i bilmiyenler öğrenmiş oldu :))
(Bu arada çalışmanda allah kolaylık versin)


Üzülme Der Mevlana...! İstediğin Bir şey Olmuyorsa Ya Daha İyi Olacağı İçin Yada Gerçekten Olmaması Gerektiği İçindir. 
18 Mayis 2011 (Çarsamba) 15:36 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
bilmece


Kayıt : 29 Aralik 2009
Erkek Üye
 

biçok yerde kolaylık sağlar

char dizi[200],*p;
p=dizi;
for(int i=0;i<5;++i)
{
 strcpy(p,"Merhaba Dunya ");
 p+=(strlen(p));
}
printf("%s",dizi);


 
19 Mayis 2011 (Persembe) 04:37 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
Hannibal_King
(Çömez)


Kayıt : 22 Agustos 2010
Erkek Üye
 

pointer

 

Pointerlar yani türkçe olarak göstericiler adres kavramıyla ilgili bir konu.Nesnemizin nasıl değeri,türü,bilinirlik alanı(scope),ömrü varsa adreside vardır.Adres bize nesnenin bellekte bulunduğu yeri gösterir.İçinde adres tutan değişkenlere pointer diyoruz.

 

Resimde p bir pointer x de bir değişken.p  int * türden bir pointer (int yıldız diye okuyabiliriz.) x int türden bir değişken.x double türden olsaydı pointer da double yıldız türünden diyecektim.x in içinde 30 var diyelim.x in sag üstündeki 1FF4 x in adresi olsun diye salladım.simdi ordaki p x in adresini içinde tutuyo.

 

*     içerik operatoru

&     adres operatoru

 

*p dediğim zaman p ye bakıyorum içinde ne var 1FF4 var yani x in adresi yani x in kendisi resme göre *p nin değeri 30 dur.

* görünce içine bak gibi düşünebiliriz.

 

&x dersemde x in adresini göstermiş olurum &x in degeri = 1FF4

 

#include

 

int main()

{

    int x;      // int türden bir değişken yarattım  x in türü int

    int *p;       //  int yıldız türden bir pointer yarattım   p nin türü int* (int yıldız)

 

    p = &x;      // x in adresini p nin içine koydum

    *p = 50;      // *p ye 50 atadım p nin içinde x in adresi oldugu için x e atamıs oldum

 

    printf("x = %d\n", x);  // ekrana 50 yazıcak

 

    return 0;

 

}

 

pointer konusu cok ayrıntılıdır tabikide kısaca ne olduğunu anlatmaya calıstım özetle içinde adres tutan değişken.


 
19 Mayis 2011 (Persembe) 04:52 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
DrKill


Kayıt : 10 Mart 2004
Ankara
Erkek Üye
 

C++ için basit kısa geçeyim....

 

Öncelikle pointer değişkenler int değişkenlerde farksızdır. Yani int değişken ne tutar? Tamsayı!!!!

Pointer değişkenlerde tamsayı tutar. Yani int bir değişkendir aslında. Ama farkı şudur. Pointer değişkenlerin tuttuğu sayılar önemlidir. Bu sayılar belleğin hücrelerinden birini temsil eder. (Genel bellek şemasını düşün her bellek hücresi 1 bytedır ve her byte ın kullanımı için o hücrenin sayısal bir adresi vardır.)

 

int x=1;
int *ptr;

diyelim.

normalde x 4 byte bellekte yer kaplayan değişken olduğunu biliyoruz (32 bit bir derleyici ve işletim sisteminde)

Yani x bellekte 4 tane hücre kaplıyor.

00000000 (1. hücre Adresi:2DFFD1)
00000000 (2. hücre Adresi:2DFFD2)
00000000 (3. hücre Adresi:2DFFD3)
00000001 (4. hücre Adresi:2DFFD4)

ptr=&x;

dediğimiz zaman derleyici x'in 1. hücresinin adresini ptr değişkenine atıyor.
Yani ptr değişkenin içeriği 2DFFD1 oluyor (Sayıları sallıyorum mantık arama. 16 tabanındaki sayı sistemine göre söylüyorum.)

cout << ptr; // dediğin zaman 2DFFD1 sayısını görürsün..
cout << *ptr; // dediğin zaman ekrana x in değeri olan 1 yazdırır.

pointer değişkenlerin tek farkı *ptr gibi bir biçimde kullanıyor olmamız

*ptr=3 dediğimiz zaman derleyici şunu yapıyor...

ptr değişkenin içeriğindeki 2DFFD1 (yani x in 1. hücresi) adresinden itibaren toplam 4 byte boyunca (4 hücre boyunca) ki boyuta 3 yaz diyor. (peki neden 4 byte yani ptr sadece adres taşıyor? çünkü her pointer değişkenin hangi tip değişkeni tutacağını zaten başta belirtiyorsun. INT *ptr; dediğinde zaten int bir değişkende işlem yapacağım, 4 byte üzerinde işlem yapacağım diyorsun.)

Yani şu oluyor

00000000 (1. hücre Adresi:2DFFD1)
00000000 (2. hücre Adresi:2DFFD2)
00000000 (3. hücre Adresi:2DFFD3)
00000011 (4. hücre Adresi:2DFFD4)

 

Olay budur. pointer kavramını anlaman için çok örnek çözmen gerekli. pointerın pointer ı pointer referansları, void pointer hepsi ayrı bir örnektir. Hepsini denemen gerek mantığını kavraman için. Ama basit bir konudur.


Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir 
30 Mayis 2011 (Pazartesi) 14:42 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
ltcelik


Kayıt : 11 Mayis 2007
YENİGÜN MAALLESİ
Erkek Üye
 

Bir nevi posta kutusudur.. Posta kutusu şeklinde bir değişkendir.. Diğer değişkenlerin bellek adreslerini tutarlar..

örneğin "k " diye tam sayı  bir değişkenimiz olsun... derleyici bu "k" için bellekte bir yer ayırır.. fakat bu belleğin adresi nedir?

bunu için bir adres saklayan başka bir değiken tanımlayabiliyoruz bu da "a" olsun..

bunu bildiriken

int *a;  // diyoruz.. yani "a bir tam sayı değişkeninin bellek adresini tutar" diyoruz..

sonra "k" nın adresini a ya yüklemek için de

 a=&k   //deyimini kullanyoruz

cout<

dediğimizde 00ff1212 gibi bir adres çıktısı alaırız [k nın adresi]

ancak

cout<<*a;

dediğimizde a da hengi değişkenin adresi tutuluyorsa onun "değeri" basılır..

örneğimizde k nın değeri 10 olsaydı 10 , 20 olsaydı 20 [k değişkeninin o an taşıdığı , sahip olduğu değer}

eğer

*a=50; dersek adresteki değeri yani bu örneğimizde k yı 50 yapmış oluruz [ hangi değişkenin adresini tutuyorsa direk adrese teslim yükleme ]

edit

şurdaki ördek güzel

http://www.ceviz.net/c-da-pointer-kavrami_a754.html


EPoX Af550G pro /2GB RAM/ winXP Pirated Edişın** özür dileyeni . . . 

[1] [2]   [»] [»»]


Bu Bölümde yeni konu açmak için dıklayın Konuyu cevaplamak için tık...
Allah'a Havale Et Google Bookmark'a Ekle Yahoo'ya Ekle Stumbleupon'a Ekle Facebook'a Ekle Twitter'a Ekle   Google'da Ara : Pointer‘lar ne işe yarar ve ne gibi faydalar sağlar. Favorilerime Ekle Yukarı Çık
Konuda 13 Mesaj Var.
Konu 1014 Sefer Gösterilmiş.
2001-2012 © Tahribat Group - Her Hakkı Saklıdır. - ● Gizlilik İlkeleri ● Kullanım Koşulları ● İletişim