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ör | Tanı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ör | Tanı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ör | Tanı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ör | Tanı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ör | Tanı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ör | Tanı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 ifade | Durum 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.
Category | Operator | Associativity |
---|---|---|
Postfix | () [] -> . ++ – – | Soldan Sağa |
Unary | + – ! ~ ++ – – (type)* & sizeof | Sağ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 |
0 yorum