Operator Precedence And Associativity In C In Hindi [Full Information – हिंदी में]

हेलो फ्रेंड्स आज हम बात करने वाले है Operator Precedence And Associativity In C के बारे में |

आज हम जानेंगे कि सी लैंग्वेज में Operator Precedence और Associativity क्या है और इसका यूज़ क्यों होता है और किस कंडीशन में होता है?

तो आइये सभी चीजें एक एक करके जानते है | मगर यदि आपने मेरा Operators In C Language वाला आर्टिकल नहीं पढ़ा तो एक बाद जरूर पढ़ लीजियेगा |

क्योंकि Operator Precedence और Associativity क्या है और इसका उपयोग हम क्यों करते है? ये जानने से पहले आपको ऑपरेटर क्या है और सी लैंग्वेज में ऑपरेटर कितने प्रकार के  होते है ये जानना जरूरी है तभी आपको आगे मैं जो बताने वाला हूँ वो अच्छे से समझ आएगा | 

तो ऑपरेटर क्या है और कितने प्रकार के होते है ये जानने के लिए आप यहाँ क्लिक करे 👉 Operators In C

आइये अब हम जानते है कि Operator Precedence क्या है?

Operator Precedence क्या है? (What is Operator Precedence In C In Hindi)

Operator Precedence, एक से ज्यादा ऑपरेटर होने पर यह निर्धारित करने का एक तरीका है कि कौन सा Operator पहले Execute होगा और कौन सा Operator बाद में Execute होगा | 

अब हम ये जान लेते है कि Operator Precedence का Concept क्यों और कैसे आया ?

Why this Precedence Concept Come into Picture?

मान लीजिये हमारे पास एक ऐसा स्टेटमेंट है जिसमे हमे addition, multiplication, division, subtraction आदि एक ही स्टेटमेंट में करना है और यदि हमारे पास operator precedence का Concept नहीं है तो हम उसे या तो Left to Right और Right to Left आर्डर में सोल्वे करने का प्रयास करेंगे, जो की सही तरीका नहीं होगा क्योंकि कई बार रिजल्ट गलत आ सकता है, ऐसे में डेवेलपर्स ने operator precedence का कॉन्सेप्ट introduce किया | 

आइए नीचे दिए गए उदाहरण से हम Operator Precedence को अच्छे समझते हैं :

int value=10+20*10;

अगर operator precedence का कांसेप्ट नहीं होता और ऐसे हम left to right और right to left सोल्वे करने का प्रयास करते तो रिजल्ट कुछ ऐसा आता 

Calculate Left to Right then output : 300 .

Calculate Right to Left then output : 210 .

यही कैलकुलेशन जब हम Operator Precedence से करते है तो ,

20*10 = 200

10+200 = 210

चुकी सी लैंग्वेज में मल्टिप्लिकेशन ( * ) ऑपरेटर की Precedence, “ + ” ऑपरेटर से ज्यादा होता है इसलिए सबसे पहले मल्टिप्लिकेशन ( * ) वाला ऑपरेटर चलेगा फिर + ऑपरेटर चलेगा जिससे  रिजल्ट में 210 आएगा |

यहाँ तक आपको समझ आ गया होगा किन हम Operator Precedence क्या है? (What is Operator Precedence In C In Hindi) और Operator Precedence का उपयोग क्यों करते है आइए अब हम Associativity के बारे में जान लेते है |

Associativity क्या है? (What is Associativity In C In Hindi)

जब किसी Expression में दो या दो से ज्यादा ऑपरेटर हो और उनकी Precedence भी एक जैसी हो तब उस कंडीशन में हम Associativity का उपयोग ये पता लगाने के लिए करते है कि कौन सा ऑपरेटर पहले Execute होगा और कौन सा ऑपरेटर बाद में Execute होगा | 

For example  – 10*2/5 , इस Example में मल्टिप्लिकेशन (* ) और डिवीज़न (/ ) दोनों ऑपरेटर की Precedence बराबर है ऐसे में हमें किस ऑपरेटर को पहले चलाये जिससे की रिजल्ट सही आये ? पहले मल्टिप्लिकेशन (* ) वाला ऑपरेटर चलना सही रहेगा या डिवीज़न (/ ) वाला ऑपरेटर चलना सही होगा ? 

ये सब जानने के लिए हमे उन ऑपरेटर के Associativity भी चेक करना पड़ता है | इन ऑपरेटर्स की Associativity को देख कर जब हम Expression को सोल्वे करते है तो रिजल्ट सही आता है |  सी लैंग्वेज में ऑपरेटर की Associativity, ऐसे कंडीशन में काफी महत्वपूर्ण भूमिका निभाती है | 

इस Expression (10*2/5) में मल्टिप्लिकेशन ( * ) और डिवीज़न ( / ) ऑपरेटर की Associativity, Left to Right है इसलिए हम सबसे पहले 10*2 को एक्सेक्यूटे करेंगे उसके बाद इनसे जो रिजल्ट आएगा उसको 5 से devide करेंगे | 

आइये इसको हम एक प्रोग्राम से समझते है 

#include <stdio.h>
int main() 
{
   int x,y;
   x = 10*20+110/5 ;

   printf("The Value of x = %d",x);

   return 0;
}

इस Example (10*20+110/5) को देखे इसमें मल्टिप्लिकेशन ( * ) और डिवीज़न ( / ) ऑपरेटर की Precedence, “ + ” ऑपरेटर से ज्यादा है तो इससे ये तो क्लियर है की + ऑपरेटर, * और / ऑपरेटर के बाद last में चलेगा |

मगर इस एक्सप्रेशन में सबसे पहले मल्टिप्लिकेशन ( * ) ऑपरेटर को चलाये या डिवीज़न ( / ) ऑपरेटर को चलाये? ये जानने के लिए हमे इन ऑपरेटर्स की Associativity को देखना पढता है |

चुकी मल्टिप्लिकेशन ( * ) और डिवीज़न ( / ) ऑपरेटर की Associativity, Left To Right है इसलिए पहले * ऑपरेटर (10*20) चलेगा जिसका रिजल्ट 200 आएगा उसके बाद “ / ” ऑपरेटर (110/5) चलेगा जिसका रिजल्ट 22 आएगा और फिर लास्ट में “ + ” ऑपरेटर चलेगा जिससे टोटल रिजल्ट 222 आएगा | 

अगर आपको इसका लाइव डेमो देखना चाहते है तो निचे लाइव डेमो के बटन पर क्लिक करके इस प्रोग्राम को चलाये और इसका लाइव डेमो देख ले | 

इस प्रोग्राम का आउटपुट ऐसा आएगा -:

Output -:

The Value of x = 222

निचे मैं आपको सभी ऑपरेटर की Precedence और Associativity का लिस्ट दे रहा हूँ इस लिस्ट में जिन ऑपरेटर का Precedence सबसे ज्यादा है उनको सबसे ऊपर रखा है और जिनकी Precedence काम है वो ऑपरेटर सबसे निचे है | इस लिस्ट में उन ऑपरेटर की Associativity को भी बताया  है |

Operator Precedence and Associativity Table in C Programming

Category Operator Associativity 
Postfix () [] -> . ++ – –  Left to right 
Unary + – ! ~ ++ – – (type)* & sizeof Right to left 
Multiplicative  * / % Left to right 
Additive  + – Left to right 
Shift  << >> Left to right 
Relational  < <= > >= Left to right 
Equality  == != Left to right 
Bitwise AND Left to right 
Bitwise XOR Left to right 
Bitwise OR Left to right 
Logical AND && Left to right 
Logical OR || Left to right 
Conditional ?: Right to left 
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left 
Comma Left to right 
Operator Precedence and Associativity In C In Hindi

Conclusion

दोस्तों आशा करता हु कि आज के इस पोस्ट को पढ़ने के बाद आपको सी लैंग्वेज में Operator Precedence और Associativity क्या है? (What is Operator Precedence And Associativity in C In Hindi), से संबंधित सभी जानकारी मिल गई होगी |

अगर आप सी लैंग्वेज का Complete Tutorial चाहते है तो मेरे इस पोस्ट C Language Tutorial In Hindi को देखे यहाँ आपको C Programming Language के सभी टॉपिक्स step by step मिल जाएगी |

दोस्तों आशा करता हु कि आपको ये पोस्ट पसंद आई होगी और आपको Operator Precedence And Associativity In C के बारे में काफी जानकरी हुई होगी |

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी ये जानकारी प्राप्त हो सके |

अगर आपको अभी भी Operator Precedence And Associativity In C Language से संबंधित कोई भी प्रश्न या Doubt है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |

Thank you आपका दिन मंगलमय हो |

पढ़ते रहिए और बढ़ते रहिए | Keep Reading and Keep Growing

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging

Leave a Comment