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

free(per.name_ptr);<br />

Çağrısıyla geri verme işleminin yapıldığını görüyorsunuz.<br />

Yapı Değişkenlerine İlkdeğer Verilmesi<br />

Dizilere ilkdeğer vermeye ilişkin özel bir sözdizimi olduğunu biliyorsunuz. Yapı<br />

değişkenlerine de benzer bir sözdizimle ilkdeğer verilebilir. Verilen ilkdeğerler sırası ile<br />

yapı elemanlarına yerleştirilir. Daha az sayıda yapı elemanına ilkdeğer verilebilir. Bu<br />

durumda ilkdeğer verilmemiş yapı elemanları otomatik olarak 0 değeri alır.<br />

#include <br />

struct Date {<br />

int day, month, year;<br />

};<br />

int main()<br />

{<br />

struct Date x = {10, 12, 1999};<br />

struct Date y = {10};<br />

printf("%d %d %d\n", x.day, x.month, x.year);<br />

printf("%d %d %d\n", y.day, y.month, y.year);<br />

}<br />

return 0;<br />

İlkdeğer verme sözdiziminde, yapı nesnesinin isminden sonra yer alan atama işlecini bir<br />

blok izler. Bu bloğun içinde virgüllerle ayrılan bir liste ile yapı nesnesinin elemanlarına<br />

ilkdeğer verilir. İlk ifadenin değeri yapı nesnesinin ilk elemanına, ikinci ifadenin değeri<br />

yapı nesnesinin ikinci elemanına atanır.<br />

Dizilerde olduğu gibi, yapılarda da bir yapı nesnesinin elemanlarından daha fazla sayıda<br />

elemana ilkdeğer vermek geçersizdir. Yapının içinde yazı tutmak için bildirilen char<br />

türden bir dizi var ise bu diziye de çift tırnak içinde ayrıca ilkdeğer verilebilir:<br />

#include <br />

#define MAX_NAME_LEN 20<br />

struct Person {<br />

char name[MAX_NAME_LEN + 1];<br />

int no;<br />

};<br />

int main()<br />

{<br />

struct Person per = {"Mustafa", 256};<br />

printf("isim : %s\nNo<br />

: %d\n", per.name, per.no);<br />

}<br />

return 0;<br />

main işlevi içinde, struct Person türünden per değişkenine ilkdeğer veriliyor. Tanımlanan<br />

per değişkeninin name isimli char türden dizisine, ilkdeğer verme sözdizimiyle Mustafa<br />

yazısı yerleştiriliyor. Yine per değişkeninin no isimli elemanına da ilkdeğer verme<br />

sözdizimiyle 256 değeri atanıyor.<br />

370

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

Saved successfully!

Ooh no, something went wrong!