GERÇEK PAYLAŞIMI BİLENLERİN MEKANI
HOŞGELDİNİZ...

GERÇEK PAYLAŞIMI BİLENLERİN MEKANI

,.-~*´¨¯¨`*·~-.¸-(_FRM¥ØK¥ØK_)-,.-~*´¨¯¨`*·~-.¸
 
AnasayfaTakvimSSSAramaÜye ListesiKayıt OlGiriş yap

Paylaş | 
 

 C++'da Göstericilere Giriş

Aşağa gitmek 
YazarMesaj
KaRaKuLe
Admin
Admin
avatar


MesajKonu: C++'da Göstericilere Giriş   Perş. Mart 26, 2009 11:48 pm

Bu makalemizde C++ dilindeki göstericiler (pointer) konusunu ele alacağız. Göstericiler C ve C++ dillerinin en zor konusu olarak ün salmışlardır. Ama konu üzerinde biraz çalışırsak ve göstericileri kullanırken dikkatli olursak gerçekten de programlarımızın hızını oldukça artıran araçlar olarak karşımıza çıkarlar.
Normalde bir değişken tanımladığımızda aslında sadece o değişkene hafızada yer ayırmış oluruz. Bu değişken ismiyle değişkenimizin hafızadaki yerine ulaşabiliriz. Değişken ismiyle değişkene ulaşmaya direkt referans (directly referance) denir. Göstericiler ise bir değişkenin hafızadaki yerini saklarlar. Bu şekilde göstericinin işaret ettiği değişkene de ulaşabiliriz. Buna dolaylı referans (indirectly reference) denir. Aşağıdaki şekilde direkt ve dolaylı referanslar gösterilmiştir.




Göstericileri tanımlamak ile diğer değişkenleri tanımlamak arasında küçük bir fark vardır. Göstericileri tanımlarken değişken isminden önce * işareti konur:
int *sayiPtr, sayi;
Yukarıda tamsayı tipinde bir gösterici bir de normal değişken tanımladık. Aynı satırda birden fazla gösterici tanımlarken herbirinin önüne ayrı ayrı * işareti koymamız gerekir. Aksi halde sadece ilk değişkenimiz gösterici olur. Birden fazla göstericiyi aynı satırda şöyle tanımlarız:
char *aPtr, *bPtri;
C++'da göstericiler için iki tane işleç(operator) kullanılır. Bunlardan birincisi: & adres işlecidir. Adres işleciyle gösterici ile aynı tipteki bir değişkenin adresine ulaşabiliriz.
int sayi=9;
int *sPtr;


sPtr=&sayi;
Yukarıdaki kodun ilk satırında bir tamsayı değişkeni tanımladık ve ona 9 değerini atadık. İkincisinde tamsayı tipinde bir adres tutmak için sPtr göstericimizi tanımladık. Son satırda ise sayi değikenimizin adresini sPtr değişkenimize yükledik. Artık sPtr, sayi değişkenini gösteriyor deriz. Son satırı çizim olarak şöyle gösterebiliriz.


sayi değişkenimizin bilgisayarın hafızasında 1800 adresli yerde saklandığını düşünelim. sPtr göstericisinin ise hafızadaki yeri 2300 olsun. Yukarıdaki kodun son satırı çalıştıktan sonra sPtr'nin içerisindeki değer 1800 olur. Değişkenlerimizin son durumları şöyle olacaktır:





Diğer gösterici işlecimiz *'dir ve dolaylı referans işleci olarak bilinir. Bu işleç, kendisinden sonra gelen göstericinin gösterdiği değişkenin değerini döndürür. Aşağıdaki kod parçasını incelersek:
cout **** *sPtr **** endl;
bu kod ekrana sayi değişkenimizin değeri olan 9'u yazdırır. Çünkü, sPtr göstericisi sayi değişkenini işaret ediyor ve *sPtr ifadesi ile sPtr göstericisinin işaret ettiği değişkene ulaşıyoruz.
Dolaylı referans işlecimiz ile ayrıca, göstericinin gösterdiği değişkenin değerini de değiştirebiliriz :
*sPtr=23;
cout**** *sPtr **** endl;
cout**** sayi **** endl;

Yukarıdaki kod parçasında önce sPtr göstericisinin gösterdiği değişkenin (yani "sayi" değişkenini) değerini 23 yaptık. Sonraki satırda sPtr göstericisinin gösterdiği değişkenin değerini ekrana yazdırdık. Son olarak sayi değişkenin değerini ekrana yazdırdık. Son iki satırda bulunan kodlar ekrana aynı değerleri yani 23 değeri basacaktır.
İlerleyen yazılarımızda, C++'da göstericilerin dizilerle nasıl kullanılacağını ve fonksiyonlara göstericileri nasıl parametre olarak geçireceğimiz gibi göstericilerle ilgili ileri düzeyde işlemler hakkında bilgi vermeye çalışacağım.
Sayfa başına dön Aşağa gitmek
 
C++'da Göstericilere Giriş
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Kilitlenen Giriş sayfasını Düzeltmek

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
GERÇEK PAYLAŞIMI BİLENLERİN MEKANI :: BİLGİSAYAR DÜNYASI :: Yazılım :: C ve C++-
Buraya geçin: