C Programming में operator precedence and associativity का Use कैसे होता है?

Brijesh Yadav
0
C Programming में operator precedence and associativity का Use कैसे होता है
C Programming में operator precedence and associativity का Use कैसे होता है

Last tutorial में हमने C Programming में Operators क्या होते हैं? सीखा था. इस tutorial में हम C Programming में operator precedence and associativity के बारे में बात करेंगे और साथ ही इससे related कुछ examples भी देखेंगे जिससे ये topic आपको अच्छे से समझ आए.

आप सभी ने math में BODMAS rule तो पढ़ा ही होगा जिसका use करके हम expression (e.g.  12 + 5 x 13 / 2 – 1) को solve करते वक्त operations order decide करते हैं.

(toc)

ठीक इसी तरह C programming में भी expression को evaluate करते वक्त operator precedence and associativity के rules को follow करना पड़ता है.

Operator Precedence in C Language

जब किसी expression में एक से ज्यादा operators use होते हैं तब operator precedence के द्वारा सभी operators को priorities दी जाती है.

Operators priorities के आधार पर ही ये तय किया जाता है की expression को evaluate करते वक्त किस operator को पहले solve किया जाएगा. आइए example के साथ समझते हैं.

(ads)

2 + 5 * 3 = 7 * 3 = 21 (wrong)
2 + 5 * 3 = 2 + 15 = 17 (right)

अगर हम  operator precedence के rules को बिना follow करें expression को solve करेंगे तो हमारा output भी ऊपर दिए first example की तरह गलत ही आएगा.

क्योंकि C language में multiply ( * ) की operator precedence addition ( + ) की operator precedence से ज्यादा होती है.

इसलिए पहले 5 * 3 को evaluted किया जाएगा उसके बाद उसमे 2 को add किया जाएगा तब जाकर आपको second example की तरह सही output मिलेगा. आइए एक और example समझते हैं.

(2 + 5) * 3 = 7 * 3 = 21

ऊपर वाले expression में हमने 2 + 5 को parentheses ( ) के अंदर रख दिया और parentheses की operator precedence * operator से ज्यादा होती है. 

इसलिए पहले 2 + 5 को evaluted किया जाएगा उसके बाद उसमे 3 को multiply किया जाएगा तब जाकर आपको सही output मिलेगा.

Operator Associativity in C Language

जब किसी expression में same precedence वाले एक से ज्यादा operators use होते हैं तब operator associativity के द्वारा उन operators को evaluate करने का order (left to right or right to left) तय किया जाता है. आइए example के साथ समझते हैं.

5 * 3 + 8 / 2

ऊपर वाले expression में * और  / की operator precedence (priority) same होती है इसलिए अब यहाँ हम इन operators की associativity देखकर इस  expression को solve करेंगे. 

(ads)

नीचे दी गयी table में C operator precedence and associativity की list दी है जिसे आप ध्यानपूर्वक देखें और याद रखें.

Operator Precedence and Associativity Table in C Programming

Operator Precedence and Associativity
OperatorDescriptionPrecedenceAssociativity
( )Parentheses1Left to right
[ ]Array element reference
->Member access via pointer
.Member access via object name
!Logical NOT operator2Right to left
~Bitwise complement operator
sizeof()Size of operator
.*Dereference operator3Left to right
->*Dereference operator
*Multiply4Left to right
+Binary addition5Left to right
<<Bitwise left shift6Left to right
<Less than7Left to right
<=Less than or equal to
>=Greater than or equal to
==Equal to8Left to right
&Bitwise AND9Left to right
^Bitwise XOR10Left to right
|Bitwise OR11Left to right
&&Logical AND12Left to right
||Logical OR13Left to right
?:Conditional operator14Right to left
=Simple assignment15Right to left
~=Assign bitwise complement
<<=Assign bitwise left shift
>>=Assign bitwise right shift
,Comma operator16Left to right

What’s Next: इस tutorial में हमने C Operators Precedence and Associativity के बारे में पढ़ा. Next tutorial में हम C programming में Type Casting करना सीखेंगे.

Post a Comment

0Comments

Post a Comment (0)
CLOSE ADS
CLOSE ADS