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

ifadesi ise, ptr bir yazıyı gösteriyor ve ptr'nin gösterdiği yazı boş değil ise anlamına gelir,<br />

değil mi?<br />

Her iki ifade de mantıksal işleçlerin kısa devre davranışı özelliğinden faydalanılıyor.<br />

Mantıksal &&, || işleçlerinin kısa devre davranışı olmasaydı, ptr'nin değeri NULL<br />

adresiyken, ptr'nin gösterdiği nesneye erişilmeye çalışılırdı.<br />

Örnekler<br />

Aşağıda yazılarla ilgili işlem yapan bazı işlevler tanımlanıyor. İşlevlerde gösterici<br />

değişkenlerin kullanımını inceleyin.<br />

Aşağıda, bir yazının C'nin kurallarına göre geçerli bir isim olup olmadığı sınayan<br />

is_valid_id isimli işlev tanımlanıyor. Yazı geçerli bir isim ise işlev sıfır dışı değere, değilse<br />

sıfır değerine geri dönüyor:<br />

#include <br />

int is_id(const char *ptr)<br />

{<br />

int ch;<br />

//Bos yazi ise gecerli isim degil<br />

if ((ch = *ptr++) == '\0')<br />

return 0;<br />

//İlk karakter harf ya da "alt tire" olmalı<br />

if (!(isalpha(ch) || ch == '_'))<br />

return 0;<br />

//kalan karakterler harf rakam ya da "alt tire" olmalı<br />

while ((ch = *ptr++) != '\0')<br />

if (!(isalnum(ch) || ch == '_'))<br />

return 0;<br />

}<br />

return 1;<br />

279

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

Saved successfully!

Ooh no, something went wrong!