C Programlama

Ek Bilgiler

C'de İşlemciler

► Detaylı anlatım

İşlemciler, ifade içinde yer alan değişken ve sabitlere işlem yaparlar.

Aritmetik İşlemciler

İşlemci  Kullanma Amacı

   *        Çarpma
   /        Bölme
   %        Bölme işleminde kalanı verme
   +        Toplama
   -        Çıkarma

İlişkisel İşlemciler

İşlemci    Anlamı

   <       Küçüktür
   <=      Küçüktür veya eşittir
   >       Büyüktür
   >=      Büyüktür veya eşittir
   ==      Eşittir
   !=      Eşit değildir

İlişkisel işlemciler 2 değeri karşılaştırdıktan sonra doğru veya yanlış bir sonuç verir. Doğru olarak verilen değer 1, yanlış olarak verilen değer ise 0'dır.

Mantıksal İşlemciler

C dilinde kullanılan 3 adet mantıksal işlemci öncelik sırasına göre aşağıda yer almaktadır:

İşlemci    Yapılan işlem

   !          NOT
   &&         AND
   ||         OR

Burada göreceğiiz mantıksal işlemciler de matematik derslerinden hatırlayacağımız gibi, doğru veya yanlış sonuç veren ifadeler arasında işlem yapan işlemcilerdir. Doğru ve yanlış ifade ile kastedilen sırasıyla 1 ve 0 değerleridir. Mantıksal işlemciler doğru ve/veya yanlış sonuçları birleştirip tek bir sonuç verirler. Genellikle ilişkisel işlemcilerle birlikte kullanılan mantıksal işlemciler AND, OR ve NOT ile ilgili mantıksal işlemlerin yerine getirilmesini sağlarlar. Doğru ifadeler için 1, yanlış ifadeler için 0 değeri kullanılarak oluşturulmuş mantıksal işlemci tablosu aşağıdadır:

x   y     x && y    x || y     !x

0   0        0         0        1
0   1        0         1        1
1   1        1         1        0
1   0        0         1        0

Artırma ve Azaltma İşlemcileri

Artırma ve azaltma işlemcileri değişkenin değerini bir sayı artırır veya azaltır.

değişken-adı++; değişken-adı--;

Artırma ve azaltma işlemcileri değişken adının hem başına hem de sonuna gelebilirler. Her iki durumda değişkeni aynı şekilde etkilemesine rağmen, eğer işlemci değişken adının öncesinde kullanılmışsa değişiklik aynı satırda, aksi takdirde, sonrai satırlarda geçerli hale gelir.

? İşlemcisi

C dilinde kullanılan ? işlemcisi en az 3 değer gerektirir:

koşul ? ifade1 : ifade2;

İşaretçi İşlemcileri

C dilinde, işaetçilerle kullanılan 3 adet işlemci vardır:

*  İşlemcisi
&  İşlemcisi
-> İşlemcisi

İşaretçiler değişkenlerin bellek adreslerini içeren değişkenler olup adresini içereceği değişkenin veri türünden tanımlı olmalıdır.

İşaretçileri kullanarak, işaretçilerin adresini içerdiği değişkenlere dolaylı yoldan işlem yapabilirsiniz.

veri-türü *işaretçi-adı;

Bir işaretçi tanımlaması yaptıktan sonra, işaretçi kullanabilmeniz için aynı veri türünden bir değişkenin adresini işaretçilere atamanız gerekir. Bu işlem için & işlemcisini kullanmanız gerekir. Aşağıdaki işlem satırı işaretçilere bir değişken adresi atama işleminin genel yapısını gösterir:

işaretçi-adı = &değişken-adı;

C dilinde, -> işlemcisi yapı kavramı ile birlikte kullanılmaktadır. Farklı veri türlerinin tek bir isim altında toplandığı yapılar için bir işaretçi tanımlandığı zaman, bu yapı işaretçileri yoluyla yapının her bir elemanına ayrı ayrı ulaşabilirsiniz. İşaretçi yoluyla yapı elemanlarına ulaşmak için -> işlemcisi kullanılır. Aşağıdaki işlem satırı, yap1 adlı bir yapının içinde yer alan id1 adlı int bir değişkene yp1 yapı işaretçisi yoluyla 26 sayısını atar:

. İşlemcisi

. işlemcisi de tıpkı -> işlemcisi gibi yapılarla birlikte kullanılır. Bir yapı için bir işaretçi tanımladığınız zaman -> işlemcisini, bir değişken tanımladığınız zaman . işlemcisini kullanmanız gerekir. Bu işlemci ile yapının her bir elemanına ayrı ayrı ulaşabilirsiniz. Aşağıdaki işlem satırı yap1 adlı bir yapının içinde yer alan id1 adlı int bir değişkene y1 yapı değişkeni yoluyla 26 sayısını atar:

y1.id1 = 26;

Bit İşlemcileri

& AND
| OR
^ XOR

~ 1'in tamamlayanı

Bu işlemciler sadece char ve int veri türünden olan değerlerle kullanılabilir.

& : İşlem yapılan değerlerin karşılıklı gelen her iki bit'i 1 ise, 1 değerini verir.

| : İşlem yapılan değerlerin karşılıklı gelen bit'lerinden herhangi biri 1 ise, 
    1 değerini verir.

^ : İşlem yapılan değerlerin karşılıklı gelen bit'lerinden ikisi de aynı değeri 
    taşıyorsa 0, aksi takdirde 1 değerini verir.

~ : Tek değere işlem yapar. int veya char bir değer içindeki bütün bit değerlerini 
    tersine çevirir (1 ise 0, 0 ise 1 yapar).

Bit Kaydırma İşlemcileri

C'de kullanılan çok ilginç uygulamalardan biride char ve int değerlerle kullanılan bit kaydırma işlemcileridir. << işareti sola bit kaydırma ve >> işareti sağa bit kaydırma işlemcisini temsil eder. Bu işlemcilerin genel yapısı aşağıda gösterildiği şekildedir:

değişken << int-değer

değişken >> int-değer

Sola kaydırma bit işlemcisini kullandığınızda, değişkenin ikili sayı sistemine göre yazılmış olan değerinde yer alan bitler << işlemcisinin sağında yer alan int değer kadar sola kayar. Bu durumda, en sağda boşalan bitlerin yerine 0 değeri gelir. Sağa kaydırma bit işlemcisi kullandığınızda ise, değişkenin ikili sayı sistemine göre yazılmış olan değerinde yer alan bitler >> işlemcisinin sağında yer alan int değer kadar sağa kayar. Bu durumda en solda boşalan bitlerin yerine 0 değeri gelir.

İşlemci Öncelikleri

() [] -> .
! ~ ++ -- - (veri-türü) * & sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /= %=
,

C, yaptığı bütün işlemleri yukarıdaki işlemci önceliği kuralına uygun olarak yapar.