12.2 Katarlara Başlangıç Değeri Atama
12.2 Katarlara Başlangıç Değeri Atama
Diğer dizi bildirimlerinde olduğu gibi, karakter dizilerine başlangıç değeri verilebilir. Örneğin aşağıda verilen iki bildirim aynı anlamdadır:
1 2 |
char s[5]={'I','z','m','i','r','\0'}; char s[5]="Izmir"; |
Birinci satırdaki bildirimde '\0' (NULL) sonlandırıcı karakter dizisinin sonlandığını gösterir. Daha önce de bahsedildiği gibi sonlandırıcı karakter, karakter dizileri üzerinde işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar. İkinci bildirimde buna gerek yoktur.
Eğer bir karakter dizisinin kaç eleman sayısı belirtilmezse, başlangıçta bildirilen karakter sayısı kaç tane ise dizinin eleman sayısı o kadar olduğu varsayılır.
1 |
char s[] = "Ankara"; /* 6 elemanlı */ |
Eğer bildirim gösterici ile yapılmak isterirse:
1 |
char *s = "Ankara"; /* 6 elemanlı */ |
yada
1 2 3 |
char *s; s = "Ankara"; |
Ancak
1 2 3 |
char s[6]; s = "Ankara"; |
şeklindeki bir atama geçersizdir. Çünkü bu şekilde yapılan bildirimde s bir değişken değil dizidir.
Elemanları katar olan diziler tanımlamak mümkündür. Örneğin en uzunu 7 karakter olan 5 farklı isim bir çatı altında şöyle toplanabilir:
1 |
char isim[5][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" }; |
yada
1 |
char isim[][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" }; |
yada
1 |
char *isim[5] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" }; |
Görüldüğü gibi, bu tip tanımlamalarda birinci boyut (satır) dizinin eleman sayısını, ikinci boyut (sütun) her bir elemanın sahip olabileceği maksimum karakter sayısını gösterir.
NOT
|