Programlama diline başlamadan ilk öne öğrenilmesi gereken konuların başında C Dili Operatörleri gelir. Programlama dilinde operatör ne demektir. Operatörler bir takım işlemleri yerine getirmek için kullanılan araçlardır. Örneğin aritmetik işlemler yapacaksınız, toplama, çarpma bölme ve çıkarma görevlerini yerine getirecek operatörlere ihtiyacınız vardır. Bir başka şekilde karşılaştırma yapacaksınız büyüktür, küçüktür, eşit değildir gibi özel olarak tanımlanmış operatörlere ihtiyacınız vardır. Şimdi C dilinde operatörleri tek tek inceleyelim.

C dilinde Operatörlerin 6 grupta toplayabiliriz.

  • Aritmetik Operatörler (Arithmetic Operators)
  • İlişkisel Operatörler (Relational Operators)
  • Matıksal Operatörler (Logical Operators)
  • Bitsel Operatörler (Bitwise Operators)
  • Atama Operatörleri (Assignment Operators)
  • Diğer Operatörler (Misc Operators)
Aritmetik Operatörler

Aritmetik işlemleri yapan operatörlerdir. Toplama, çıkarma, bölme, çarpma, arttırma, azaltma, mod alma gibi işlemleri gerçekleştirirler.

OperatörTanımÖrnek
+İki sayıyı toplar.A + B = 30
İkinci sayıyı birincisinden çıkarır.A − B = -10
*iki sayıyı çarpar.A * B = 200
/Bölme işlemi yapar.B / A = 2
%ilk sayıyı ikinci sayıya bölerek kalanı gösterir.B % A = 0
++Sayıyı bir arttırır.A++ = 11
Sayıyı bir azaltır.A– = 9
İlişkisel Operatörler

Bu operatörler büyük, küçük, eşit, eşit değil, küçük eşit, büyük eşit gibi ilişkileri karşılaştırmak için kullanılır.

OperatörTanımÖrnek
==İki değer birbirine eşitse true olarak çıktı verir.(A == B)
!=İki değer birbirinden farklı ise true olarak çıktı verir.(A != B)
>A, B’ dan büyükse true olur, değilse false.(A > B)
<A, B’ dan küçükse true değilse false.(A < B)
>=A, B’ye eşit ve büyük durumlarında true olur.(A >= B)
<=A, B’ye eşit ve küçük durumlarında true olur.(A <= B)
Mantıksal Operatörler

VE, VEYA, ÖZELVEYA, DEĞİL gibi mantık kapıları işlevlerini yerine getirir.

OperatörTanımÖrnek
&&Ve kapısı operatörü. İki değer 1 ise sonuç 1 olur.

Değerlerden biri 0 olması durumunda sonuç 0 olur.

(A && B)
||Veya kapısı operatörü. İki değer sıfır olduğu durumda sonuç 0.

Değerlerin herhangi biri 1 ise sonuç 1 olur.

(A || B)
!Değil kapısı operatörü. Terslmek için kullanılır.

Eğer değerlerin sonuc true ise bu operatör false olarak döndürür.

!(A && B)
Bitsel Operatörler

Bit düzeyinde işlem yapmak için kullanılır. Aşağıdaki örneklerde;

A = 0011 1100 (60)

B = 0000 1101 (13)

OperatörTanımÖrnek
&Bit bit VE kapısı işlemi mantıksal olarak yapılmaktadır. 1*1=1, 1*0=0, 0*1=1, 0*0=0 gibi.(A & B) = 12, i.e., 0000 1100
|VEYA kapısı işlemini gerçekleştirir. 1+0=1, 1+1=1, 0+1=1, 0+0=0 gibi(A | B) = 61, i.e., 0011 1101
^ÖZELVEYA kapısı. Aynı durumlar 0 farklı durumlar 1 olarak çıktı verir.(A ^ B) = 49, i.e., 0011 0001
~NOT kapısı. 1’leri 0, 0’ları 1 yapar. Flipping  yapar.(~A ) = -60, i.e,. 1100 0100 in 2’s complement form.
<<Kaydırma (Shift) operatörü. A byte değerini 2 bit sola kaydırır.A << 2 = 240 i.e., 1111 0000
>>Kaydırma (Shift) operatörü. A byte değerini 2 bit sağa kaydırır.A >> 2 = 15 i.e., 0000 1111
Atama Operatörleri

Bu operatörler bir değişken değerini başka bir değişkene atamak için kullanılır. Yanına başka operatörler alarak aynı anda başka bir işlem yaptıktan sonra atama işlemini gerçekleştirebilir.

OperatörTanımÖrnek
=A ile B’ yi toplayıp C operatörüne atamak için kullanılır.C = A + B
+=C değerini A ile toplayıp tekrardan C değeri içine atanır.C += A is equivalent to C = C + A
-=C’ den A çıkartılarak tekrardan C değerine atanır.C -= A is equivalent to C = C – A
*=C ile A çarpılarak tekrardan C değerinin içine atanır.C *= A is equivalent to C = C * A
/=C, A’ya bölünür ve tekrardan C nin içine atanır.C /= A is equivalent to C = C / A
%=C, A’ ya bölünerek kalan değer C nin içine atanır.C %= A is equivalent to C = C % A
<<=C değeri sola iki hane kaydırarak tekrar C ye atanır.C <<= 2 is same as C = C << 2
>>=C değeri sağa iki hane kaydırarak tekrar C ye atanır.C >>= 2 is same as C = C >> 2
&=C değerindeki bitleri 2 sayısı ile VE kapısından

geçirip tekrardan C değerine atar.

C &= 2 is same as C = C & 2
^=C değerindeki bitleri 2 sayısı ile ÖZELVEYA

kapısından geçirip tekrardan C değerine atar.

C ^= 2 is same as C = C ^ 2
|=C değerindeki bitleri 2 sayısı ile VEYA kapısından

geçirip tekrardan C değerine atar.

C |= 2 is same as C = C | 2
Çeşitli Operatörler

Yukarıdaki operatörler dışında kullanılan özel operatörlerde vardır. Adresleme ve değişken boyutu bulan operatörler gibi.

OperatörTanımÖrnek
sizeof()Değişkenin boyutunu verir.sizeof(a), where a is integer, will return 4.
&Değişkenin adresini verir.&a; returns the actual address of the variable.
*Değişkene pointer atar*a;
? :Durumsal ifadeDurum true ise değer X, değilse değer Y
C Dilinde Operatör Öncelikleri (Precedence)

Operatör öncelikleri bilinmesi gereken bir konudur. Eğer uzun zincirler halinde operatörleri kullanıyorsanız öncelik sırasını bilmeniz ve ona göre yazmanız gerekmektedir. Yoksa istediğiniz sonuçları alamayabilirsiniz.

CategoryOperatorAssociativity
Postfix() [] -> . ++ – –Soldan Sağa
Unary+ – ! ~ ++ – – (type)* & sizeofSağdan Sola
Multiplicative* / %Soldan Sağa
Additive+ –Soldan Sağa
Shift<< >>Soldan Sağa
Relational< <= > >=Soldan Sağa
Equality== !=Soldan Sağa
Bitwise AND&Soldan Sağa
Bitwise XOR^Soldan Sağa
Bitwise OR|Soldan Sağa
Logical AND&&Soldan Sağa
Logical OR||Soldan Sağa
Conditional?:Sağdan Sola
Assignment= += -= *= /= %=>>= <<= &= ^= |=Sağdan Sola
Comma,Soldan Sağa