Aracılığıyla paylaş


Dizi Bildirimleri

"Dizi bildirimi" diziyi adlandırıp öğelerinin türünü belirtir. Dizideki öğe sayısını da tanımlayabilir. Dizi türüne sahip bir değişken, dizi öğelerinin türüne ilişkin bir işaretçi olarak kabul edilir.

Sözdizimi

declaration:
declaration-specifiers init-declarator-list Tercih;

init-declarator-list:
init-declarator
init-declarator-list , init-declarator

init-declarator:
declarator
declarator = initializer

declarator:
pointer Tercihdirect-declarator

direct-declarator:
direct-declarator [ constant-expression Tercih]

İsteğe constant-expression bağlı olduğundan söz diziminin iki biçimi vardır:

  • İlk form bir dizi değişkeni tanımlar. constant-expression Köşeli ayraç içindeki bağımsız değişken dizideki öğelerin sayısını belirtir. constant-expressionvarsa, tam sayı türüne ve sıfırdan büyük bir değere sahip olmalıdır. Her öğe tarafından verilen type-specifiertüre sahiptir ve bu tür dışında voidherhangi bir tür olabilir. Dizi öğesi bir işlev türü olamaz.

  • İkinci form, başka bir yerde tanımlanmış bir değişken bildirir. Bağımsız değişkeni köşeli ayraç içinde atlar constant-expression ancak köşeli ayraçları atlar. Bu formu yalnızca diziyi daha önce başlatmış, parametre olarak bildirmiş veya programın başka bir yerinde açıkça tanımlanmış bir diziye başvuru olarak bildirmişseniz kullanabilirsiniz.

Her iki biçimde direct-declarator de değişkeni adlandırın ve değişkenin türünü değiştirebilir. Aşağıdaki köşeli ayraçlar ([ ]) direct-declarator bildirimciyi bir dizi türüne dönüştürür.

Tür niteleyicileri, dizi türündeki bir nesnenin bildiriminde görünebilir, ancak niteleyiciler dizinin kendisi yerine öğelere uygulanır.

Dizi bildirimcisini bu formdaki köşeli ayraçlı sabit ifadelerin listesiyle izleyerek bir dizi dizisi ("çok boyutlu" dizi) bildirebilirsiniz:

type-specifier declarator [ constant-expression ] [ constant-expression ] ...

Köşeli ayraç içindeki her constant-expression biri belirli bir boyuttaki öğe sayısını tanımlar: iki boyutlu dizilerde iki köşeli ayraçlı ifade, üç boyutlu dizilerde üç vb. vardır. Diziyi başlatmış, parametre olarak bildirmiş veya programın başka bir yerinde açıkça tanımlanmış bir diziye başvuru olarak bildirdiyseniz ilk sabit ifadeyi atlayabilirsiniz.

Daha Karmaşık Bildirimcileri Yorumlama bölümünde açıklandığı gibi karmaşık bildirimcileri kullanarak çeşitli nesne türlerine yönelik işaretçi dizileri tanımlayabilirsiniz.

Diziler satıra göre depolanır. Örneğin, aşağıdaki dizi her biri üç sütunlu iki satırdan oluşur:

char A[2][3];

İlk satırın üç sütunu önce depolanır ve ardından ikinci satırın üç sütunu depolanır. Bu, son alt simgenin en hızlı şekilde değiştiği anlamına gelir.

Bir dizinin tek bir öğesine başvurmak için , SonEk İşleçleri'nde açıklandığı gibi bir alt simge ifadesi kullanın.

Örnekler

Bu örnekler dizi bildirimlerini gösterir:

float matrix[10][15];

adlı matrix iki boyutlu dizide her birinin türü olan 150 öğe vardır float .

struct {
    float x, y;
} complex[100];

Bu örnek, bir yapı dizisinin bildirimidir. Bu dizide 100 öğe vardır; her öğe, iki üye içeren bir yapıdır.

extern char *name[];

Bu deyim, işaretçi chardizisinin türünü ve adını bildirir. gerçek tanımı name başka bir yerde gerçekleşir.

Microsoft'a Özgü

Bir dizinin en büyük boyutunu tutmak için gereken tamsayı türü, boyutudur size_t.

END Microsoft'a Özel

Ayrıca bakınız

Bildirimciler ve Değişken Bildirimleri