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

Bu işleçler, mantıksal işlemler yapar. Mantıksal ve, mantıksal veya, mantıksal değil<br />

işleçleri bu gruba girer.<br />

Gösterici işleçleri (pointer operators)<br />

Bu işleçler, adresler ile ilgili bazı işlemlerin yapılmasını sağlar. Adres işleci, içerik işleci ile<br />

köşeli ayraç işleci bu gruba girer.<br />

Bitsel işlem yapan işleçler (bitwise operators)<br />

Bu işleçler, bitsel düzeyde bazı işlemlerin yapılmasını sağlar. Bitsel değil işleci, bitsel<br />

kaydırma işleçleri, bitsel ve, veya, özel veya işleçleri bu gruba giren işleçlerdir.<br />

Atama işleçleri (assignment operators)<br />

Bir nesneye atama yapılmasını sağlayan işleçlerdir. Atama işleci ve işlemli atama işleçleri<br />

bu gruba girer.<br />

Özel amaçlı işleçler (special purpose operators)<br />

Bunlar farklı işlerin yapılmasını sağlayan ve farklı amaçlara hizmet eden işleçlerdir. Koşul<br />

işleci, sizeof işleci, tür dönüştürme işleci bu gruba giren işleçlerdir.<br />

İlk üç grup, programlama dillerinin hepsinde vardır. Bitsel işlem yapan işleçler ve<br />

gösterici işleçleri yüksek seviyeli programla dillerinde genellikle bulunmaz. Programlama<br />

dillerinin çoğu, kendi uygulama alanlarında kolaylık sağlayacak birtakım özel amaçlı<br />

işleçlere de sahip olabilir.<br />

Aritmetik İşleçler<br />

Aritmetik işleçler, basit artimetiksel işlemler yapan işleçlerdir.<br />

Toplama (+) ve Çıkarma(-) İşleçleri<br />

İki terimli, araek konumundaki (binary infix) işleçlerdir. Diğer bütün programlama<br />

dillerinde oldukları gibi, terimlerinin toplamını ya da farkını almak için kullanırlar. Yani<br />

ürettikleri değer, terimlerinin toplamı ya da farkı değerleridir.<br />

Bu işlecin terimleri herhangi bir türden nesne gösteren ya da göstermeyen ifadeler<br />

olabilir. Terimlerinin aynı türden olması gibi bir zorunluluk da yoktur. İşleç öncelik<br />

tablosunun 4. seviyesinde bulunurlar. Öncelik yönleri soldan sağadır. Her iki işlecin de<br />

yan etkisi yoktur. Yani bu işleçler terimlerinin bellekte sahip oldukları değerleri<br />

değiştirmez.<br />

Toplama ve çıkarma işleçleri olan + ve – işleçlerini tek terimli + ve – işleçleriyle<br />

karıştırmamak gerekir.<br />

İşaret İşleci Olan – ve +<br />

Bu işleçler, tek terimli, önek konumundaki (unary prefix) işleçlerdir. İşaret işleci eksi (-),<br />

teriminin değerinin ters işaretlisini üretir. Yani derleyici, işaret eksi işlecinin kullanılması<br />

durumunda terim olan değeri -1 ile çarpacak şekilde kod üretir. Bu işlecin terimi herhangi<br />

bir türden nesne gösteren ya da göstermeyen ifade olabilir. İşleç öncelik tablosunun ikinci<br />

seviyesinde bulunurlar. Öncelik yönü sağdan soladır. İşlecin bir yan etkisi yoktur, yani<br />

terimi olan nesnenin bellekteki değerini değiştirmez.<br />

"İşaret eksi" işlecinin ürettiği, bir nesne değildir, bir sağ taraf değeridir. Aşağıdaki ifade<br />

matematiksel olarak doğru olmasına karşın C dilinde doğru değildir, derleme zamanında<br />

hata oluşumuna neden olur:<br />

int x;<br />

-x = 5;<br />

76/529

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

Saved successfully!

Ooh no, something went wrong!