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

void display_array (const int *p, int size)<br />

{<br />

int i;<br />

}<br />

for (i = 0; i < size; ++i)<br />

printf("%d ", p[i]);<br />

int main()<br />

{<br />

int a[5] = {3, 8, 7, 6, 10};<br />

display_array(a, 5);<br />

}<br />

return 0;<br />

Yukarıda tanımlanan display_array işlevi int türden bir dizinin başlangıç adresini ve<br />

boyutunu alıyor, dizinin tüm elemanlarının değerlerini ekrana yazdırıyor. Parametre<br />

değişkeni olan p göstericisinin bildiriminde yer alan const anahtar sözcüğüne daha sonra<br />

değinilecek.<br />

Aşağıda aynı işlev işini yaparken bu kez içerik işlevini kullanıyor:<br />

void display_array (const int *p, int size)<br />

{<br />

while (size--)<br />

printf("%d ", *p++);<br />

}<br />

Gösterici Parametre Değişkenlerinin Tanımlanması<br />

Bir işlevin parametre değişkeninin gösterici olması durumunda, bu gösterici iki farklı<br />

biçimde tanımlanabilir:<br />

void func(int *ptr);<br />

void func(int ptr[]);<br />

Derleyici açısından iki biçim arasında hiçbir farklılık yoktur. Ancak bazı programcılar, işlev<br />

dışarıdan bir dizinin başlangıç adresini istiyorsa ikinci biçimi tercih ederler:<br />

void sort_array(int ptr[], int size);<br />

Bu biçim yalnızca işlev paraemtresi olan göstericilere ilişkindir. Global ya da yerel<br />

göstericiler bu biçimde tanımlanamaz:<br />

void foo(void)<br />

{<br />

int ptr[]; /* Geçersiz */<br />

}<br />

Aşağıda int türden dizilerle ilgili bazı faydalı işlemler yapan işlevler tasarlanıyor. İşlevlerin<br />

tanımlarını dikkatli bir şekilde inceleyin. İşlevlerin bazılarının parametreleri olan<br />

göstericilerin bildiriminde const anahtar sözcüğünün kullanıldığını göreceksiniz. const<br />

anahtar sözcüğünü şimdilik gözönüne almayın. Bu anahtar sözcük ileride ayrıntılı bir<br />

biçimde ele alınacak.<br />

249

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

Saved successfully!

Ooh no, something went wrong!