अभिव्यक्ति में (i, ++i, 1)
, इस्तेमाल किया गया अल्पविराम अल्पविराम ऑपरेटर है
अल्पविराम ऑपरेटर (टोकन द्वारा दर्शाया गया ,
) एक बाइनरी ऑपरेटर है जो अपने पहले ऑपरेंड का मूल्यांकन करता है और परिणाम को छोड़ देता है, और फिर दूसरे ऑपरेंड का मूल्यांकन करता है और इस मान (और प्रकार) को लौटाता है।
क्योंकि यह अपने पहले ऑपरेंड को छोड़ देता है, यह आम तौर पर केवल उपयोगी होता है जहां पहले ऑपरेंड में वांछनीय दुष्प्रभाव होते हैं । यदि पहले ऑपरेंड का साइड इफेक्ट नहीं होता है, तो कंपाइलर बिना किसी प्रभाव के अभिव्यक्ति के बारे में चेतावनी उत्पन्न कर सकता है।
तो, उपरोक्त अभिव्यक्ति में, सबसे बाईं ओर i
का मूल्यांकन किया जाएगा और इसके मूल्य को छोड़ दिया जाएगा। फिर ++i
मूल्यांकन किया जाएगा और i
1 से वृद्धि होगी और फिर से अभिव्यक्ति के मूल्य को ++i
छोड़ दिया जाएगा, लेकिन इसका साइड इफेक्ट i
स्थायी है । फिर 1
मूल्यांकन किया जाएगा और अभिव्यक्ति का मूल्य होगा 1
।
के बराबर है
i; // Evaluate i and discard its value. This has no effect.
++i; // Evaluate i and increment it by 1 and discard the value of expression ++i
i = 1 + 1;
ध्यान दें कि उपरोक्त अभिव्यक्ति पूरी तरह से वैध है और अपरिभाषित व्यवहार को लागू नहीं करती है क्योंकि अल्पविराम ऑपरेटर के बाएं और दाएं ऑपरेंड के मूल्यांकन के बीच एक अनुक्रम बिंदु है ।