08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

Yine a ifadesi bir işleme sokulduğunda, bu dizinin ilk elemanı olan nesnenin adresine,<br />

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

Bu dizinin ilk elemanı olan nesne char * türünden olduğuna göre, bu nesnenin adresi char<br />

** türündendir. Böyle bir dizi üzerinde işlem yapacak işlev, bu dizinin başlangıç adresi ile<br />

dizinin boyutunu alacağına göre, aşağıdaki gibi bildirilmelidir:<br />

void process_array(char **parray, int size);<br />

Bu işlev<br />

process_array(a, 10);<br />

biçiminde çağrılabilir.<br />

Şimdi de aşağıdaki programı inceleyin:<br />

#include <br />

#include <br />

void swap_ptr(char **p1, char **p2)<br />

{<br />

char *temp = *p1;<br />

*p1 = *p2;<br />

*p2 = temp;<br />

}<br />

void display_str_array(char **p, int size)<br />

{<br />

int k;<br />

}<br />

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

printf("%s ", p[k]);<br />

printf("\n");<br />

void sort_str_array(char **p, int size)<br />

{<br />

int i, k;<br />

}<br />

for (k = 0; k < size - 1; ++k)<br />

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

if (strcmp(p[i], p[i + 1]) > 0)<br />

swap_ptr(p + i, p + i + 1);<br />

int main()<br />

{<br />

char *names[10] = {"Eda", "Abdurrahman", "Berk", "Zarife", "Yusuf",<br />

"Levent", "Sezgi", "Sukufe", "Ufuk", "Cansu"};<br />

display_str_array(names, 10);<br />

sort_str_array(names, 10);<br />

getchar();<br />

display_str_array(names, 10);<br />

}<br />

return 0;<br />

310

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

Saved successfully!

Ooh no, something went wrong!