08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

struct Sample{<br />

int i;<br />

long l;<br />

double d;<br />

};<br />

#include <br />

int main()<br />

{<br />

struct Sample sam;<br />

printf("sam.i'nin adresi = %p\n", &sam.i);<br />

printf("sam.l'nin adresi = %p\n", &sam.l);<br />

printf("sam.d'nin adresi = %p\n", &sam.d);<br />

}<br />

return 0;<br />

Yapı Nesneleri Üzerinde Yapılabilecek İşlemler<br />

Yapı nesnelerinin elemanları değil de kendileri söz konusu olduğunda, yani bir yapı<br />

nesnesi bir bütün olarak ele alındığında ancak dört işlecin terimi olabilir: nokta işleci,<br />

sizeof işleci, adres işleci, atama işleci. Bir yapı nesnesinin bunların dışında bir işlecin<br />

terimi olması geçersizdir.<br />

sizeof İşleci ve Yapılar<br />

Bir yapı nesnesi sizeof işlecinin terimi olabilir. Bu durumda sizeof işlecinin ürettiği değer,<br />

nesnenin ait olduğu türün bellekte kapladığı byte sayısıdır. Tabi sizeof işlecinin teriminin<br />

bir tür ismi de olabileceğini biliyorsunuz. Aşağıdaki örneği inceleyin:<br />

struct Point {<br />

int x, y;<br />

};<br />

int main()<br />

{<br />

struct Point p;<br />

printf("sizeof(struct Point) = %u\n", sizeof(struct Point));<br />

printf("sizeof(p) = %u\n ", sizeof(p));<br />

}<br />

return 0;<br />

Yukarıdaki main işlevini içinde yapılan printf çağrısında sizeof işlecinin terimi bir tür ismi<br />

(struct Point) iken, ikinci printf çağrısında ise sizeof işlecinin terimi struct Point türünden<br />

bir nesne olan p dir.<br />

Adres İşleci ve Yapı Nesneleri<br />

Bir yapı nesnesi adres işlecinin terimi olabilir. Bu durumda adres işlecinin ürettiği değer<br />

ilgili yapı türünden bir adres bilgisidir:<br />

struct Date isimli bir yapının bildiriminin yapılmasından sonra aşağıdaki gibi bir nesne<br />

tanımlandığını düşünelim:<br />

364

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

Saved successfully!

Ooh no, something went wrong!