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

int x = 100;<br />

int a[x]; /* Geçersiz */<br />

int b[5.]; /* Geçersiz */<br />

int c[10 * 20];<br />

int d[sizeof(int) * 100];<br />

Yukarıdaki deyimlerden a ve b dizilerinin tanımlamaları geçersizdir. a dizisinin tanımında<br />

boyut belirten ifade olarak değişmez ifadesi olmayan bir ifade kullanılıyor. b dizisinin<br />

tanımında ise boyut belirten ifade bir gerçek sayı türündendir. c dizisinin tanımında ise bir<br />

hata söz konusu değildir. 10 * 20 bir değişmez ifadesidir. d dizisinin tanımı da bir hata<br />

oluşturmaz çünkü sizeof işlecinin ürettiği değer derleme zamanında elde edilir.<br />

Dizi bildirimlerinde eleman sayısını belirten ifade yerine sıklıkla simgesel değişmezler<br />

kullanılır:<br />

#defineARRAY_SIZE 100<br />

int a[ARRAY_SIZE];<br />

Program içinde dizi boyutu yerine hep ARRAY_SIZE simgesel değişmezi kullanılabilir.<br />

Böylece programda daha sonra dizi boyutuna ilişkin bir değişiklik yapılmak istendiğinde,<br />

yalnızca simgesel değişmezin değerinin değiştirilmesi yeterli olur.<br />

Diğer değişken bildirimlerinde olduğu gibi, virgül ayracıyla ayrılarak, birden fazla dizi, tür<br />

belirten sözcüklerin bir kez kullanılmasıyla tanımlanabilir:<br />

int x[100], y[50], z[10];<br />

x, y ve z, elemanları int türden olan dizilerdir.<br />

Diziler ve diğer nesneler türleri aynı olmak kaydıyla tek bir tanımlama deyimiyle<br />

tanımlanabilir:<br />

int a[10], b, c;<br />

a int türden 10 elemanlı bir dizi, b ve c int türden nesnelerdir.<br />

Dizi elemanlarının her biri ayrı birer nesnedir. Dizi elemanlarına köşeli ayraç işleciyle []<br />

ulaşılabilir. Köşeli ayraç işleci bir gösterici işlecidir. Bu işleç "Göstericiler" konusunda<br />

ayrıntılı bir şekilde ele alınacak.<br />

Köşeli ayraç işlecinin terimi dizi ismidir. Aslında bu bir adres bilgisidir, çünkü bir dizi ismi<br />

işleme sokulduğunda, işlem öncesi derleyici tarafından otomatik olarak dizinin ilk<br />

elemanının adresine dönüştürülür. Köşeli ayraç içinde dizinin kaçıncı indisli elemanına<br />

ulaşılacağını gösteren bir tamsayı ifadesi olmalıdır.<br />

C dilinde bir dizinin ilk elemanı, dizinin sıfır indisli elemandır.<br />

T bir tür bilgisi olmak üzere<br />

T a[SIZE];<br />

gibi bir dizinin ilk elemanı a[0] son elemanı ise a[SIZE - 1]'dir. Örnekler:<br />

dizi[20] /* a dizisinin 20 indisli yani 21. elemanı olan nesne */<br />

ave[0] /* ave dizisinin 0 indisli yani birinci elemanı olan nesne */<br />

total[j] /* total dizisinin j indisli elemanı olan nesne*/<br />

Görüldüğü gibi "bir dizinin n. elemanı" ve "bir dizinin n indisli elemanı" terimleri dizinin<br />

farklı elemanlarını belirtir. Bir dizinin n indisli elemanı o dizinin n + 1 . elemanıdır.<br />

200

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

Saved successfully!

Ooh no, something went wrong!