c - Parentheses operator clarification -


  int एक = 10, बी = 20; बी = ए + बी- (ए = बी);  

इस अभिव्यक्ति में क्यों (a = b) पहला ऑपरेशन नहीं है? यदि यह प्राथमिकता के अनुसार किया जाता है तो यह b को 20 खुद प्राप्त करना होगा लेकिन b ही 10 हो रही है, क्यों? क्या कोई भी मेरी शक स्पष्ट कर सकता है?

यह अपरिभाषित व्यवहार को आह्वान करता है कुछ भी हो सकता है ध्यान दें कि यह निश्चित है कि (a = b) घटाता से पहले मूल्यांकन करता है लेकिन यह गारंटी नहीं देता कि b का मान a बस मूल्यांकन के बाद a अगले अनुक्रम बिंदु (; का विवरण यहाँ के बाद) संशोधित हो सकता है।

मानक कहता है कि

पिछले और अगले अनुक्रम बिंदु के बीच एक ऑब्जेक्ट के पास अभिव्यक्ति के मूल्यांकन से अधिक बार इसकी संग्रहीत मान होनी चाहिए। इसके अलावा, पहले मूल्य का उपयोग केवल संग्रहीत करने के मान निर्धारित करने के लिए किया जाएगा

सुझाया गया रीडिंग:


Comments

Popular posts from this blog

c# - Reactive Extensions ControlScheduler -

scala - Play Framework - how to bind form to a session field -

c++ - Why does Visual Studio Release build break on non-executing code line -