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

DİZİLER<br />

Veri Yapısı Nedir<br />

Bir konuyla ilgili, mantıksal ilişki içindeki verilerin bellekte saklanmasına yönelik<br />

düzenlemelere veri yapısı denir. Veri yapıları bellekte belirli bir düzen içinde tutulmuş<br />

verilere ulaşılabilmesine, bu veriler üzerinde bazı işlemlerin etkin bir biçimde yapılmasına<br />

olanak sağlar.<br />

Dizi Nedir<br />

Bellekte bitişik bir biçimde bulunan, aynı türden nesnelerin oluşturduğu veri yapısına dizi<br />

(array) denir. Dizi veri yapısının en önemli özelliği, mantıksal bir ilişki içindeki aynı türden<br />

verilerin bellekte bitişik (contigous) olarak tutulmasıdır. Bunun da uygulamalarda<br />

sağladığı fayda şudur: Dizinin bir elemanına, elemanın konum bilgisiyle değişmez bir<br />

zamanda ulaşılabilir. Yani dizinin eleman sayısı ne olursa olsun, konumu bilinen bir<br />

elemana ulaşım zamanı aynıdır. Bu da bazı uygulamaların etkin bir şekilde<br />

gerçekleştirilmesini kolaylaştırır.<br />

C Dilinde Diziler<br />

C dilinde dizi (array), aynı türden bir ya da daha fazla nesnenin bellekte dizi veri yapısı<br />

biçiminde tutulmasını sağlayan araçtır.<br />

C'de bir dizinin tanımlanmasıyla birden fazla sayıda nesne tek bir deyimle tanımlanabilir.<br />

10 elemana sahip bir dizi tanımlamak yerine, şüphesiz isimleri farklı 10 ayrı nesne de<br />

tanımlanabilir. Ama 10 ayrı nesne tanımlandığında bu nesnelerin bellekte bitişik olarak<br />

yerleşmeleri güvence altına alınmış bir özellik değildir. Oysa dizi tanımlamasında, dizinin<br />

elemanı olan bütün nesnelerin bellekte bitişik olarak yer almaları güvence altına alınmış<br />

bir özelliktir. Dizi de bir veri türü olduğuna göre, dizilerin de kullanılmalarından önce<br />

tanımlanmaları gerekir.<br />

Dizilerin Tanımlanması<br />

Dizi tanımlamalarının genel biçimi:<br />

[];<br />

Yukarıdaki genel biçimde köşeli ayraç, eleman sayısının seçimlik olduğunu değil, eleman<br />

sayısı bilgisinin köşeli ayraç içine yazılması gerektiğini gösteriyor.<br />

tür<br />

dizi ismi<br />

eleman sayısı<br />

: Dizi elemanlarının türünü gösteren anahtar sözcüktür.<br />

: İsimlendirme kurallarına uygun olarak verilecek herhangi bir isimdir.<br />

: Dizinin kaç elemana sahip olduğunu gösterir.<br />

Örnek dizi bildirimleri:<br />

double a[20];<br />

int ave[10];<br />

char path[80];<br />

Yukarıdaki tanımlamalarda<br />

a, 20 elemanlı, her bir elemanı double türden olan bir dizidir.<br />

ave, 10 elemanlı, her bir elemanı int türden olan bir dizidir.<br />

path, 10 elemanlı, her bir elemanı char türden olan bir dizidir.<br />

Tanımlamada yer alan, eleman sayısı belirten ifadenin bir tamsayı türünden değişmez<br />

ifadesi olması zorunludur. Bir başka deyişle derleyici bu ifadenin değerini derleme<br />

zamanında elde edebilmelidir:<br />

199

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

Saved successfully!

Ooh no, something went wrong!