11.2 Gösterici Nedir?

11.2   Gösterici Nedir?

Gösterici, bellek alanındaki bir gözün adresinin saklandığı değişkendir. Göstericilere veriler (yani değişkenlerin içeriği) değil de, o verilerin bellekte saklı olduğu hücrenin başlangıç adresleri atanır. Kısaca gösterici adres tutan bir değişkendir.

Bir gösterici, diğer değişkenler gibi, sayısal bir değişkendir. Bu sebeple kullanılmadan önce program içinde bildirilmelidir. Gösterici tipindeki değişkenler şöyle tanımlanır:

 

Burada tip_adı herhangi bir C tip adı olabilir. Değişkenin önünedeki * karakteri yönlendirme (indirection) operatörü olarak adlandırılır ve bu değişkenin veri değil bir adres bilgisi tutacağını işaret eder. Örneğin:

 

Yukarıda bildirilen göstericilerden; kr bir karakterin, x bir tamsayının ve deger bir gerçel sayının bellekte saklı olduğu yerlerin adreslerini tutar.

Bir göstericiye, bir değişkenin adresini atamak için adres operatörünü kullanabiliriz. Örneğin tamsayı tipindeki tam adlı bir değişken ve ptam bir gösterici olsun. Derleyicide, aşağıdaki gibi bir atama yapıldığında:

 

ptam göstericisinin tam değişkeninin saklandığı adresi tutacaktır. Bu durum Şekil 11.3’deki gibi tasvir edilir.

Şekil 11.3: Göstericinin bir değişkenin adresini göstermesi

Şekil 11.3’deki gösterimde, ptam göstericisinin içeriği tam değişkeninin içeriği (33) değil adresidir (0x3fffd14). Ayrıca, ptam değişkeni, bellekte başka bir hücrede saklandığına ve bu hücrenin int değil int * tipinde bir bölge olduğuna dikkat ediniz. Buraya kadar anlatılanlar, Program 11.1’de özetlenmiştir.

Program 11.1: Bir değişkenin içeriğini ve adresini ekrana yazdırma

7. satırda değişkenler bildirilmiştir. 9. satırdaki atama ile tam değişkeninin adresiptam göstericisine atanmıştır. Bu satırdan itibaren ptamtam değişkeninin gösterir. 11. satıda tam‘ın içeriği (33 sayısı), 12. ve 13. satırda tam‘ın adresi, %p tip karakteri ile, ekrana yazdırılmıştır. Ekran çıktısı incelendiğinde, &tam ve ptam içereriğinin aynı anlamda olduğu görülür.

ÇIKTI

 

tam adlı değişkenin içeriğine ptam gösterici üzerinde de erişilebilir. Bunun için program içinde ptam değişkeninin önüne yönelendirme operatörü (*) koymak yeterlidir. Yani *ptamtamdeğişkeninin adresini değil içeriğini tutar. Buna göre:

 

komutuyla, ptam‘ın adresini tuttuğu hücreye 44 değeri atanır. Bu durum, Program 11.2’de gösterilmiştir.

Program 11.2: Bir değişkenin içeriğini ve adresini ekrana yazdırma

ÇIKTI

Özetle ptam = &tam atamasıyla:

  • *ptam ve tamtam adlı değişkenin içeriği ile ilgilidir.
  • ptam ve &tamtam adlı değişkenin adresi ile ilgilidir.
  • * yönlendirme ve & adres operatörüdür.

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.