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 />

sizeof İşleci<br />

sizeof, bir ifadenin türünün bellekte kaç byte yer kapladığı değerini üreten bir işleçtir.<br />

sizeof işleci tek terimli önek konumunda bir işleçtir.<br />

sizeof işlecinin terimi aşağıdakilerden biri olabilir:<br />

1. Terim olarak tür belirten sözcükler kullanılabilir. Bu durumda terimin ayraç içine<br />

alınması zorunludur. Örnekler:<br />

sizeof(int)<br />

sizeof(double)<br />

sizeof(long)<br />

İşleç bu durumda terimi olan tür bilgisinin kullanılan sistemde kaç byte yer kaplayacağı<br />

değerini üretir. Örneğin Windows ya da UNIX sistemlerinde<br />

sizeof(int)<br />

gibi bir ifadenin değeri 4'tür.<br />

2. Terim olarak bir ifade kullanılabilir. Bu durumda terimin ayraç içine alınması zorunlu<br />

değildir. Ancak programcıların çoğu okunabilirlik açısından terimi ayraç içine almayı<br />

yeğler:<br />

double x;<br />

sizeof (x)<br />

sizeof(17.8)<br />

sizeof(func())<br />

İşleç bu durumda, terimi olan ifadenin ait olduğu türün, kullanılan sistemde kaç byte yer<br />

kaplayacağı değerini üretir. Örneğin Windows ya da UNIX sistemlerinde<br />

sizeof(x)<br />

gibi bir ifadenin değeri 8'dir. Böyle bir ifade doğal olarak, ilgili sistemde x nesnesinin<br />

bellekte kaç byte yer kapladığını belirlemekte de kullanılabilir. sizeof işleci en çok bu<br />

biçimiyle kullanılır. Yani işlecin terimi nesne gösteren bir ifade seçilerek, terimi olan<br />

nesnenin bellekte kaç byte yer kapladığı öğrenilir.<br />

3. sizeof işleci terim olarak bir dizi ismi aldığında, byte olarak o dizinin toplam<br />

uzunluğunu değer olarak üretir:<br />

double a[10];<br />

sizeof(a)<br />

ifadesi 80 değerini üretir.<br />

Diğer taraftan sizeof işlecinin terim olarak dizinin bir elemanını alarak ürettiği değer, dizi<br />

hangi türden ise o türün kullanılan sistemdeki byte olarak uzunluğu olur. Yani yukarıdaki<br />

örnekte<br />

sizeof(a[0])<br />

ifadesi 8 değerini üretir.<br />

Bu durumda<br />

226

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

Saved successfully!

Ooh no, something went wrong!