08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

*;<br />

, göstericinin (içindeki adresin) türüdür. char, int, float... gibi herhangi bir tür<br />

olabilir.<br />

Burada * atomu tür bilgisinin bir parçasıdır.<br />

Aşağıda örnek gösterici bildirimleri yer alıyor:<br />

float *f;<br />

char *ps;<br />

int *dizi;<br />

unsigned long *Pdword;<br />

Gösterici bildirimleri, diğer türlere ilişkin bildirimlerden * atomu ile ayrılır.<br />

char s;<br />

bildiriminde s, char türden bir değişken iken<br />

char *ps;<br />

bildiriminde ps, char türden bir göstericidir, yani türü char * olan bir nesnedir. Bu<br />

değişkene char türden bir nesnenin adresi atanmalıdır. Böyle bir bildirimden şu bilgiler<br />

çıkarılabilir:<br />

ps bir nesnedir, yani bellekte bir yer kaplar. ps nesnesi için bellekte ayrılan yerdeki 1'ler<br />

ve 0'lar char türden bir nesnenin adresinin, sayısal değeri olarak yorumlanır.<br />

Tanımlamada yer alan '*' bir işleç değildir. Sözdizim kuralı olarak nesnenin bir gösterici<br />

olduğunu anlatır.<br />

Gösterici bildirimleri ile normal bildirimler bir arada yapılabilir. Örneğin:<br />

int *p, a;<br />

Burada p int türden bir gösterici değişkendir, ama a int türden bir normal bir değişkendir.<br />

Aynı türden birden fazla göstericinin bildirimi yapılacaksa, araya virgül atomu konularak,<br />

her gösterici değişkenin bildirimi * atomu ile yapılmalıdır.<br />

char *p1, *p2<br />

Yukarıdaki bildirimde p1 ve p2 char türden gösterici değişkenlerdir.<br />

double *p1, *p2, d, a[20];<br />

Yukarıdaki bildirimde p1 ve p2 double türden gösterici değişkenler, d double türden bir<br />

değişken ve a ise elemanları double türden 20 elemanlı bir dizidir.<br />

Gösterici Değişkenlerin Uzunlukları<br />

Bir gösterici nesnesinin tanımı ile karşılaşan derleyici –diğer tanımlamalarda yaptığı gibibellekte<br />

o gösterici değişkeni için yer ayırır. Derleyicilerin göstericiler için ayırdıkları<br />

yerlerin uzunluğu donanıma bağlı olup sistemden sisteme değişebilir. 32 bit sistemlerde<br />

(örneğin UNIX ve Windows 3.1 sonrası sistemlerde) gösterici değişkenler 4 byte<br />

uzunluğundadır. 8086 mimarisinde ve DOS altında çalışan derleyicilerde ise gösterici<br />

değişkenler 2 byte ya da 4 byte olabilirler. DOS'ta 2 byte uzunluğundaki göstericilere<br />

yakın göstericiler (near pointer), 4 byte uzunluğundaki göstericilere ise uzak göstericiler<br />

(far pointer) denir.<br />

Göstericilerin uzunlukları türlerinden bağımsızdır.<br />

231

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!