Commodore sayı 27, sayfa 64

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 64

POINTER KAVRAMI:

Pointer işlemleri, C dilinde geniş olarak kullanılmakta ve Düşük Seviye Dilleri (Low Level Language) ile yapılabilen birçok işlemi de bu sayede yerine getirmektedir. Daha önceki yazı dizilerini izlediyseniz, kullanılan değişkenlerin tipinin belirlendiğini ve bunun gerekli olduğunu görmüşsünüzdür. Çünkü derleyici program bellekte değişken tipine göre yer ayırmaktadır. Örneğin “char” ile tanımlanmış değişkenlerde 1 bayt, “double” ile tanımlanmış değişkenlerde 4 bayt yer ayrılmaktadır. Eğer değişken bir diziyse o dizinin eleman sayısı ile tipinin çarpımı kadar yer ayrılmaktadır. Bunu şekil ile gösterelim:

1 Bayt 1 Bayt char ala Pa 4 rm ac) 5 as) char bi b Pb * ae) double c Pc * C2 3

Şekilde örnek olarak a, b, c değişkenleri ile dizisinin bellekte sıralanışı gösterilmiştir. Şeklin sağında p ile gösterilen ifade o değişkenin bellekteki konumunu belirten POINTER ifadesidir. Yani a değişkeninin belirtilmesinin bir yolu da bellekteki konumunun bilinmesidir. a değişkeninin bellekteki yeri Pa olduğunda biz a değerini *Pa ile elde edebiliriz. (*) gösterimi Pa pointer'ın içeriğini ifade etmektedir. Benzer şekilde *Pb ve *Pc de sırasıyla b ve c değişkenini göstermektedir. C değişkeninin double olması nedeniyle Pc pointer'ı C1 değerini referans almaktadır. Doğal olarak pointer doğrudan değişken tipine bağlı olmaktadır.

char *pa double *pc

ifadeleri Pa ve Pc'nin pointer değişkeni olduğunu göstermektedir. Gerektiği durumda değişkenin pointer'ının yerini de bulmamıza yarayacak ve bunu işlemcinin adresi cinsinden verebilecek & gösterimini kullanabiliriz. Bu durumda:

Klavyeyle gezinmek için ← ve → tuşları.