08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

biçiminde yazılırdı.<br />

Bu durumda s ifadesi ile &s[0] ifadesi aynı adres bilgisidir, değil mi?<br />

Gösterici değişkenlere kendi türlerinden bir adres bilgisi atamak gerektiğine göre<br />

aşağıdaki atamaların hepsi geçerli ve doğrudur:<br />

int a[100];<br />

long l[20];<br />

char s[100];<br />

double d[10];<br />

int *p;<br />

long *lp;<br />

char *cp;<br />

double *dp;<br />

p = a;<br />

lp = l;<br />

cp = s;<br />

dp = d;<br />

Bir göstericiye yalnızca aynı türden bir dizinin ismi atanabilir. Örneğin:<br />

int *p;<br />

char s[] = "Necati";<br />

p = s; /YANLIŞ */<br />

Dizi İsimleri Nesne Göstermez<br />

int a[100];<br />

int *ptr;<br />

gibi bir tanımlamadan sonra<br />

a<br />

gibi bir ifade kullanılırsa, bu iafade derleyici tarafından otomatik olarak int * türüne<br />

dönüştürülür. Yani bu ifadenin türü de (int *) türüdür.<br />

ptr<br />

ifadesi nesne gösteren bir ifadeyken, yani bir sol taraf değeriyken,<br />

a<br />

ifadesi nesne göstermeyen bir ifade değeridir. Değiştirilebilir sol taraf değeri (modifiable L<br />

value) olarak kullanılamaz. Örneğin<br />

a++<br />

ifadesi geçersizdir.<br />

C dilinde hiçbir değişkenin ya da dizinin programın çalışma zamanında bulunacağı yer<br />

programcı tarafından belirlenemez. Programcı değişkeni tanımlar, derleyici onu herhangi<br />

bir yere yerleştirebilir.<br />

Dizi isimleri göstericiler gibi sol taraf değeri olarak kullanılamaz. Örneğin, s bir dizi ismi<br />

olmak üzere<br />

237

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

Saved successfully!

Ooh no, something went wrong!