Posted under C# (csharp)
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.

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.

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.