Tuesday 15 June 2010

c - Evaluation of the following expression -


निम्न कोड स्निपेट:

  int i = -3, j = 2, k = 0, मी; मी = ++ मैं & amp; amp; ++ ज || ++ k;   

को दो अवधारणाओं का उपयोग करके मूल्यांकन किया जा सकता है, मुझे विश्वास है: <+ p>

1. चूंकि ++ ऑपरेटर तार्किक ऑपरेटरों की तुलना में अधिक प्राथमिकता रखते हैं, इसलिए पहले सभी वेतन वृद्धि ऑपरेटर उत्तीर्ण किए जाएंगे , तब & amp; amp; से अधिक प्राथमिकता || गणना की जाएगी। इस प्रक्रिया में, कश्मीर बढ़ जाएगा।

2. प्रथम और amp; ऑपरेटर का मूल्यांकन किया जाएगा। इस ++ i और ++ जे के लिए गणना की जाएगी। परिणामस्वरूप & amp; amp; ऑपरेटर 1 है, ++ k का मूल्यांकन करने की कोई ज़रूरत नहीं है। इसलिए कश्मीर में वृद्धि नहीं की जाएगी।

जब मैं एक सिस्टम पर कोशिश करता हूं, परिणाम तर्क देता है कि 2 सही होगा और 1 गलत होगा। ऐसा क्यों है?

ओली सही है ... आप मूल्यांकन क्रम के साथ भ्रम की स्थिति में भ्रमित हैं

प्राथमिकता का अर्थ है कि अभिव्यक्ति की व्याख्या निम्नानुसार है:

  m = ((((++ i) & amp; amp; amp; (++ j)) || (+ + के));   

के विपरीत, कहते हैं:

  m = (++ (i & amp; ++ (j || ( ++ कश्मीर)))   

प्राथमिकता इस तथ्य को नहीं बदलेगी कि = ऑपरेटर का एलएचएस हमेशा आरएचएस से पहले मूल्यांकन किया जाएगा।

No comments:

Post a Comment