▃ ▅ ησ ♥ яєѕρєcт ▅ ▃
Süper Üye
Katarlara Başlangıç Değeri Atama
char s[5]="Izmir";
yada
char *s;
s = "Ankara";
Ancak
char s[6];
s = "Ankara";
şeklindeki bir atama geçersizdir. Çünkü bu şekilde yapılan bildirimde s bir değişken değil dizidir.
yada
char isim[][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" };
yada
char *isim[5] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" };
NOT
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:
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.
char s[] = "Ankara"; /* 6 elemanlı */Eğer bildirim gösterici ile yapılmak isterirse:
char *s = "Ankara"; /* 6 elemanlı */yada
char *s;
s = "Ankara";
Ancak
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:
char isim[5][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" };yada
char isim[][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" };
yada
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
Katar ifadelerinde doğrudan çift tırnak " veya ters bölü \ karakterleri kullanılamaz. Bu durumda katar ifadeleri içerisinde
" yerine \"
\ yerine \\
kullanılmalıdır. Örneğin:
char *mes = "\"ilk.c\" dosyasinin yeri:";
char *yol = "C:\\WINDOWS\\DESKTOP\\C";
...
puts(mes);
puts(yol);
ile ekrana aşağıdaki satırlar bastırlır:
"ilk.c" dosyasinin yeri:
C:\WINDOWS\DESKTOP\C