Bu eğitimde, örnekler yardımıyla operatörlerin önceliği ve ilişkilendirilebilirliği hakkında bilgi edineceksiniz.
Operatörlerin önceliği
Operatörlerin önceliği, bir ifadede birden fazla operatör varsa hangi operatörün ilk olarak yürütüleceğini belirler.
Bir örnek düşünelim:
int x = 5 - 17* 6;
C, öncelik *
daha yüksektir -
ve =
. Bu nedenle 17 * 6
önce değerlendirilir. Daha sonra içeren ifade -
, önceliğinin -
öncekinden daha yüksek olduğu için değerlendirilir =
.
İşte yukarıdan aşağıya doğru işleçlerin önceliği tablosu. Mülkiyet ilişkilendirilebilirlik kısaca ele alınacaktır.
Operatörlerin Öncelik ve İlişkilendirme Tablosu
Şebeke | Operatörün anlamı | İlişkisellik |
---|---|---|
() () -> . | İşlevsel çağrı Dizi öğesi başvurusu Dolaylı üye seçimi Doğrudan üye seçimi | Soldan sağa |
! ~ + - ++ - & * sizeof (tür) | Mantıksal olumsuzlama Bitsel (1 'ler) tamamlayıcı Tekli artı Tekli eksi Artırma Azaltma Dereference (Adres) İşaretçi başvurusu Bir nesnenin boyutunu döndürür Typecast (dönüştürme) | Sağdan sola |
* / % | Bölme Kalanını Çarp | Soldan sağa |
+ - | İkili artı (Toplama) İkili eksi (çıkarma) | Soldan sağa |
<< >> | Sola kaydırma Sağa kaydırma | Soldan sağa |
< <= > > = | Daha az eşit veya daha az Büyüktür Büyük veya eşittir | Soldan sağa |
== ! = | Eşittir Eşit değildir | Soldan sağa |
& | Bitsel AND | Soldan sağa |
^ | Bit düzeyinde özel VEYA | Soldan sağa |
| | Bit tabanlı VEYA | Soldan sağa |
&& | Mantıksal AND | Soldan sağa |
|| | Mantıksal VEYA | Soldan sağa |
?: | Koşullu Operatör | Sağdan sola |
= * = / = % = + = - = & = = | = << = >> = | Basit atama Ürünü ata Bölüm ata Kalanı ata Toplamı ata Fark ata Bit şeklinde ata VE Bitsel ata XOR ata YA DA Sola kaydırma ata Sağa kaydırma ata | Sağdan sola |
, | İfadelerin ayırıcısı | Soldan sağa |
Operatörlerin İlişkilendirilmesi
Operatörlerin ilişkilendirilebilirliği, bir ifadenin değerlendirildiği yönü belirler. Örneğin,
b = a;
Burada, a'nın değeri b'ye atanır, tersi değil. Bunun nedeni =
operatörün çağrışımının sağdan sola olmasıdır.
Ayrıca, aynı önceliğe (önceliğe) sahip iki operatör mevcutsa, ilişkilendirilebilirlik bunların yürütüldüğü yönü belirler.
Bir örnek düşünelim:
1 == 2! = 3
Burada operatörler ==
ve !=
aynı önceliğe sahiptir. Ve çağrışımları soldan sağa doğrudur. Bu nedenle, 1 == 2
önce yürütülür.
Yukarıdaki ifade şuna eşdeğerdir:
(1 == 2)! = 3
Not: Bir ifadenin birden çok operatörü varsa ()
, kodu daha okunaklı hale getirmek için parantez kullanabilirsiniz .