Örnek Dizi Bildirimleri

Örnek Dizi Bildirimleri

double a[20]; /* a, 20 elemanlı ve elemanları double türden olan bir dizidir*/
float ave[10]; /* ave 10 elemanlı ve her elemanı float türden olan bir dizidir. */
unsigned long total[100]; /* total 100 elemanlı ve her elemanı unsigned long türden olan bir dizidir */
char path[80]; /* path 80 elemanlı ve her elemanı char türden olan bir dizidir. */

Tanımlamada yer alan eleman sayısının mutlaka tamsayı türlerinden birinden sabit ifadesi olması zorunludur. (Sabit ifadesi [constant expression] tanımını hatırlayalım; değişken ve fonksiyon çağırımı içermeyen, yani yalnızca sabitlerden oluşan ifadelere, sabit ifadesi denir.)

int dizi[x]; /* x dizisinin bildirimi derleme zamanında hata olusturur .*/
int dizi[5.]; /* gerçek sayı türünden sabit ifadesi olduğu için derleme zamanında hata olusturur . */

int sample[10 * 20] /* sample dizisinin bildirimi geçerlidir. Eleman sayısını gösteren ifade sabit ifadesidir. */

Dizi bildirimlerinde eleman sayısı yerine sıklıkla sembolik sabitler kullanılır:

#define MAXSIZE 100
...
int dizi[MAXSIZE]; /* geçerli bir bildirimdir */
...

Diğer değişken bildirimlerinde olduğu gibi, virgül ayıracıyla ayrılarak, birden fazla dizi tek bir tür belirten anahtar sözcükle tanımlanabilir.

int x[100], y[50], z[10];

x, y ve z elemanları int türden olan dizilerdir.

Dizi tanımlamaları diğer değişken tanımlamaları ile kombine edilebilir.

int a[10], b, c;

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

Dizi elemanlarının her biri ayrı birer nesnedir. Dizi elemanlarına index operatörüyle [] ulaşılabilir. Index operatörü bir gösterici operatörüdür. Göstericiler konusunda ayrıntılı bir şekilde ele alınacaktır.

İndex operatörünün operandı dizi ismidir. (Aslında bu bir adres bilgisidir, çünkü dizi isimleri adres bilgisi belirtirler.) Köşeli parantez içinde dizinin kaçıncı indisli elemanına ulaşacağımızı gösteren bir tamsayı ifadesi olmalıdır.

C dilinde dizilerin ilk elemanı sıfırıncı indisli elemandır.

a[n] gibi bir dizinin ilk elemanı a[0] son elemanı ise a[n - 1] dur.

Örnekler:

dizi[20] /* a dizisinin 20. indisli yani 21. sıradaki elemanı. */
ave[0] /* ave dizisinin 0. indisli yani birinci sıradaki elemanı */
total[j] /* total dizisinin j indisli elemanı */

Görüldüğü gibi bir dizinin n. elemanı ve bir dizinin n indisli elemanı terimleri dizinin farklı elemanlarına işaret eder. Bir dizinin n indisli elemanı o dizinin n + 1 . elemanıdır.
Bir dizi tanımlaması ile karşılaşan derleyici, tanımlanan dizi için bellekte yer tahsis edecektir..Ayrılacak yer şüphesiz dizinin eleman sayısı * bir elemanın bellekte kapladığı yer kadar byte olacaktır.

0 yorum: