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 />

#include <br />

int main()<br />

{<br />

int a[5] = {1, 2, 3, 4, 5};<br />

int *ptr = a + 2;<br />

printf("%d\n", ptr[-1]);<br />

printf("%d\n", ptr[0]);<br />

printf("%d\n", ptr[1]);<br />

}<br />

return 0;<br />

[] işlecinin birinci terimi dizi ismi olmak zorunda değildir. Daha önce de belirtildiği gibi bir<br />

dizinin ismi bir ifade içinde kullanıldığında derleyici tarafından o dizinin ilk elemanının<br />

adresine yani dizinin başlangıç adresine dönüştürülür.<br />

[] işleci işleç öncelik tablosunun en yüksek düzeyinde bulunur. Örneğin:<br />

&p[n]<br />

ifadesinde önce köşeli ayraç işleci değer üretir. İşlecin ürettiği değer, bir nesneye<br />

ilişkindir. Adres işlecinin öncelik seviyesi köşeli ayraç işlecinden daha düşük olduğu için,<br />

işlecin ulaştığı nesne bu kez adres işlecinin terimi olur.<br />

Şüphesiz [] içindeki ifadenin sayısal değeri negatif olabilir. Örneğin<br />

p[-2]<br />

geçerli bir ifadedir. Benzer şekilde bu ifade<br />

*(p - 2)<br />

ifadesi ile aynı anlamdadır.<br />

Aşağıdaki örnekte köşeli ayraç işleci ile adres işleci aynı ifade içinde kullanılıyor.<br />

#include <br />

int main()<br />

{<br />

char ch = 'A';<br />

(&ch)[0] = 'B'<br />

putchar(ch);<br />

}<br />

return 0;<br />

++ ve -- İşleçlerinin Gösterici İşleçleriyle Birlikte Kullanılması<br />

C dilinin bir çok kod kalıbında gösterici işleçleriyle ile artırma ya da eksiltme işleci birlikte<br />

kullanılır.<br />

1. İçerik işleci ile ++ işlecinin aynı ifade içinde yer alması<br />

a) ++*p durumu<br />

245

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

Saved successfully!

Ooh no, something went wrong!