C İşleci Önceliği ve İlişkilendirilebilirlik Nedir?

C Isleci Onceligi Ve Iliskilendirilebilirlik Nedir



Operatörler genellikle C'de çeşitli aritmetik ve mantıksal işlemleri gerçekleştirmek için kullanılır. C programlama dili olarak bilinen belirli bir sırayı takip eder. Operatör Önceliği Ve ilişkilendirilebilirlik yürütme sırasında işlemlerin sırasını belirlemek için. kuralları Operatör Önceliği Ve ilişkilendirilebilirlik hatasız kod yazmaya yardımcı olur ve kodun okunabilirliğini artırır.

Bu makale, C'de ilişkilendirilebilirlik ve işleç önceliği hakkında bilgi edinmenize yardımcı olacak kapsamlı bir öğretici sağlar.

C'deki Operatör Önceliği

Operatör Önceliği ifadeler değerlendirilirken çeşitli işleçlerin değerlendirildiği sırayı açıklar. Örneğin, bir ifadede hem toplama hem de çarpma işleçleri varsa, hangisi önce değerlendirilmelidir? Cevap basit, C bu tür belirsizliği çözmek için belirli kuralları takip eder. Operatör Önceliği . C'de, Operatör Önceliği tekli operatörlerden üçlü koşullu operatöre kadar değişen 17 seviyede sınıflandırılır. Aritmetik işleçler, ilişkisel işleçler, mantıksal işleçler ve bitsel işleçler gibi en çok kullanılan işleçler C standardını izler. Operatör Önceliği protokol.







Öncelik kurallar, ifadeleri değerlendirirken hangi işleçlerin diğerlerinden daha yüksek önceliğe sahip olduğunu belirler. C programlama dilindeki çeşitli operatör türleri, farklı derecelerde operatörlere sahiptir. öncelik . Örneğin, birli işleçler, ikili işleçlerden daha büyük önceliğe sahiptir. Aşağıda, artan düzende sıralanmış operatörlerin bir listesi bulunmaktadır. öncelik :



Şebeke Operatörün Anlamı ilişkilendirilebilirlik
()
[]
->
.
İşlevsel çağrı

Dizi öğesi başvurusu



Dolaylı üye seçimi





Doğrudan üye seçimi

Soldan sağa
!
~
+

++

&
*
boyutu
(tip)
mantıksal olumsuzlama

Bit düzeyinde (1'ler) tamamlayıcı

birli artı

tekli eksi

artış

Azaltma

Başvuru (Adres)

İşaretçi referansı

Bir nesnenin boyutunu döndürür

Tahmin (dönüşüm)

Sağdan sola
*
/
%
Çarpmak

Bölmek

kalan

Soldan sağa
+
Binary artı(İlave)

İkili eksi(çıkarma)

Soldan sağa
<<
>>
Sol shift

Sağa kaydırma

Soldan sağa
<
<=
>
>=
Daha az

Az veya eşit

daha büyük

Büyük veya eşit

Soldan sağa
==
!=
Eşittir

Eşit değil

Soldan sağa
& bit düzeyinde VE Soldan sağa
^ Bit bazında özel VEYA Soldan sağa
| bitsel VEYA Soldan sağa
&& mantıksal VE 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

Bitsel AND atama

Bitsel XOR atama

Bitsel VEYA ata

Sola kaydırma ata

Sağ vardiyayı ata

Sağdan sola
, İfade ayırıcı Soldan sağa

Bu kurallar, derleyiciye aynı ifadede birden çok işleç içeren ifadelerin nasıl değerlendirileceği konusunda rehberlik eder. Örneğin, A + B * C denkleminde çarpma işleci toplama işlecinden daha büyük önceliğe sahiptir. öncelik tüzük. Bu nedenle, derleyici sonuca A'yı eklemeden önce B * C ifadesini değerlendirecektir.

Bir örneğe bakalım Operatör Önceliği kod aracılığıyla.

#include

int ana ( ) {

int A = 43 , B = on bir , C = 16 , D = 31 ;

int sonuç = ++ A * B -- + C / -- D ;

printf ( 'bir = %d \N ' , A ) ;

printf ( 'b = %d \N ' , B ) ;

printf ( 'c = %d \N ' , C ) ;

printf ( 'd = %d \N ' , D ) ;

printf ( 'sonuç = %d \N ' , sonuç ) ;

geri dönmek 0 ;

}

Dört değişken a, b, c ve d, yukarıdaki kodda bildirilmiştir ve başlangıç ​​değerleri buna göre 43, 11, 16 ve 31'dir. Ardından, bir ifadedeki bu değişkenlere çeşitli aritmetik ve atama işleçleri uygular. İfade, artırma öncesi operatör ++a'yı kullanarak a'nın değerini artırır, sonucu azaltma sonrası operatör b– ile çarpar ve ardından sonucu c'nin d'nin önceden azaltılmış değerine bölünmesine ekler. (ön azaltma işleci –d kullanılarak). Sonuç değişkeni daha sonra bu ifadenin toplam sonucunu tutmak için kullanılır.

Çıktı

C'de ilişkisellik

ilişkilendirilebilirlik aynı önceliğe sahip bir ifade sırasında işleçlerin değerlendirildiği sırayı ifade eder. Soldan sağa ve sağdan sola ilişkilendirilebilirlik C'deki iki ilişkilendirme biçimidir. İki operatör aynı değere sahipse öncelik , soldan sağa kavramına göre soldan sağa değerlendirilirler. ilişkilendirilebilirlik . Bununla birlikte, aynı öncelik gözlenirse, operatörler sağdan sola göre sağdan sola değerlendirilir. ilişkilendirilebilirlik .

Örneğin, ++ artırma işleci sağdan sola ilişkilendirilebilirlik artış anlamına gelir Şebeke değişkenden sonra değerlendirilir. Oysa mantıksal VE Şebeke soldan sağa var ilişkilendirilebilirlik , bu, operatörün soldan sağa doğru değerlendirildiği anlamına gelir.

#include

int ana() {

int bir = 6 , b = 3 , ç = 2 ;

int sonuç = a * b / c;

printf( 'sonuç = %d \N ' , sonuç);

geri dönmek 0 ;

}

a, b ve c üç değişkeni bu kodda bildirilir ve sırasıyla 6, 3 ve 2 olarak başlatılır. Daha sonra bir ifadede bu değişkenlere çarpma ve bölme işlemlerini uygular. Çarpma ve bölme C'de soldan sağa sıralanır. ilişkilendirilebilirlik aynı öncelik düzeyine sahip oldukları için. Bu, a * b / c ifadesini değerlendirirken önce bölme işleminin, ardından çarpma işleminin geldiğini gösterir.

Çıktı

Çözüm

Operatör Önceliği Ve ilişkilendirilebilirlik C programlamasında ifadelerin yürütülme sırasını belirlemeye yardımcı olan çok önemli kavramlardır. En yüksek operatörler öncelik düzeyi önce değerlendirilir ve ilişkilendirilebilirlik kurallar, aynı önceliğe sahip birden çok işleç kullanıldığında sıranın belirlenmesine yardımcı olur. Anlamak Operatör Önceliği Ve ilişkilendirilebilirlik karmaşık programlar tasarlarken önemlidir ve daha az hatayla daha temiz ve daha verimli kod üretilmesine yardımcı olur.