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

Atama işlecinin ürettiği değer, nesneye atanan değerin kendisidir. Aşağıdaki programı<br />

derleyerek çalıştırın:<br />

#include <br />

int main()<br />

{<br />

int x;<br />

printf("ifade degeri = %d\n", x = 5);<br />

printf("x = %d\n", x);<br />

}<br />

return 0;<br />

main işlevi içinde yapılan birinci printf çağrısı ile, x = 5 ifadesinin değeri yazdırılıyor.<br />

x = 5 ifadesinin değeri atama işlecinin ürettiği değer olan 5 değeridir. Yani ilk printf<br />

çağrısı ile ekrana 5 değeri yazdırılır. Atama işleci yan etkisi sonucu x nesnesinin değerini<br />

5 yapar. Bu durumda ikinci printf çağrısı ile x değişkeninin değeri ekrana yazdırıldığından<br />

ekrana yazılan, 5 değeri olur.<br />

Atama işlecinin ürettiği değer nesne değildir. Aşağıdaki deyim geçersizdir:<br />

(b = c) = a; /* Geçersiz! */<br />

b = c atamasından elde edilen değer, c nesnesinin kendisi değil, c nesnesinin sayısal<br />

değeridir.<br />

C'nin birçok kalıp kodunda, atama işlecinin ürettiği değerden faydalanılır. Aşağıdaki main<br />

işlevini inceleyin:<br />

#include <br />

int main()<br />

{<br />

int a, b, c, d;<br />

a = b = c = d = 5;<br />

printf("a = %d\n", a);<br />

printf("b = %d\n", b);<br />

printf("c = %d\n", c);<br />

printf("d = %d\n", d);<br />

printf("e = %d\n", e);<br />

}<br />

return 0;<br />

İşleç öncelik tablosundan da görüleceği gibi, atama işleçleri sağdan sola öncelik yönüne<br />

sahiptir. Bu yüzden:<br />

a = b = c = d = 5;<br />

deyimi C'de geçerlidir.<br />

Bu deyimde önce d değişkenine 5 değeri atanır. Atama işlecinin ürettiği 5 değeri, bu kez<br />

c değişkenine atanır. Sağdan sola doğru ele alınan her atama işleci, nesneye atanan<br />

değeri ürettiğine göre, tüm değişkenlere 5 değeri aktarılmış olur. Atama işlecinin ürettiği<br />

değerden faydalanmak, özellikle kontrol deyimlerinde karşınıza çok çıkacak.<br />

İşlemli Atama İşleçleri<br />

87/529

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

Saved successfully!

Ooh no, something went wrong!