मैंने हाल ही में ,
ऑपरेटर के बारे में सीखा और यह तथ्य कि यह अनुक्रम बिंदु प्रस्तुत करता है।क्या मैं = 0, ++ परिभाषित किया गया है?
मैं यह भी पता चला निम्नलिखित कोड अपरिभाषित व्यवहार करने के लिए नेतृत्व कि:
i = ++i;
क्योंकि i
दो अनुक्रम अंक के बीच दो बार संशोधित किया गया था।
लेकिन निम्नलिखित कोडों के बारे में क्या?
i = 0, ++i;
i = (0, ++i);
जबकि मैं नियमों को जानता हूं, मैं निष्कर्ष तक नहीं पहुंच सकता। तो क्या यह परिभाषित व्यवहार है या नहीं?
संपादित करें: बस के रूप में @paxdiablo का उल्लेख है, परिभाषित या नहीं, यह वास्तव में एक बुरा व्यवहार जो बचा जाना चाहिए है। यह प्रश्न पूरी तरह से शैक्षणिक उद्देश्यों और "नियमों" की बेहतर समझ के लिए कहा जाता है।
मुझे नहीं पता _why_ लोग इस तरह के प्रश्न पूछते रहते हैं। इससे कोई फर्क नहीं पड़ता कि यह अपरिभाषित है, यह क्रैपी कोड है। आपको इसका उपयोग, परिभाषित या अन्यथा _never_ करना चाहिए। – paxdiablo
@paxdiablo: क्या आपको सच में लगता है कि मैं वास्तविक कोड में ऐसे बेकार कथन का उपयोग करूंगा? यह केवल नियमों को बेहतर समझने के बारे में है। और कुछ नहीं। – ereOn
@ereOn नियमों को सीखना अच्छा है, यह सच है। लेकिन थोड़ी देर के अनुभव के बाद आम तौर पर किसी भी संरचना से बचने के लिए कोडर की ओर जाता है जो सभी प्लेटफार्मों में अच्छी तरह से परिभाषित नहीं होते हैं। –