वे अलग कैसे हैं? यहां मैं क्या सोच रहा हूं, लेकिन मुझे यकीन नहीं है ....पूर्व वृद्धि वृद्धि बनाम पोस्ट-वृद्धि
यदि आप पूर्व-वृद्धि का उपयोग करते हैं, उदाहरण के लिए ++ j के साथ लूप के लिए, तो आप मूल रूप से कह रहे हैं: "एक प्रति बनाएं लूप में उपयोग के लिए जे का मूल्य, फिर वृद्धि जे, फिर लूप में कथन के माध्यम से जे की प्रतिलिपि के माध्यम से जाओ। " यदि आप उसी लूप जे ++ में पोस्ट-इंक्रिमेंटेशन का उपयोग कर रहे हैं, तो आप मूल रूप से कह रहे हैं: "लूप में उपयोग के लिए जे के मान की एक प्रति बनाएं, फिर लूप में कथन के माध्यम से जे की प्रतिलिपि के साथ जाएं, फिर वृद्धि ञ। "
कारण मुझे अनिश्चितता है क्योंकि मैंने लूप के लिए एक ऐसा बनाया है जो 10 से जे के मान को गुणा करता है और फिर जे = 1 के माध्यम से j = 1 के परिणाम को आउटपुट और पूर्व-वृद्धि दोनों का उपयोग करके आउटपुट करता है। मानव पठनीय आउटपुट पोस्ट-और पूर्व-वृद्धि के साथ बिल्कुल वही है। मैं सोच रहा हूं, 'आउटपुट बिल्कुल वही कैसे होते हैं यदि किसी प्रकार की कॉपी ऑपरेशन शामिल नहीं है?'
तो, मैं अनुमान लगा रहा हूं कि पूर्व और बाद में वृद्धि के बीच अंतर वास्तव में महत्वपूर्ण हो जाता है, php में, जब मैं संदर्भ मानों के नामों के बजाय संदर्भों का उपयोग करता हूं (जो php में पॉइंटर्स के रूप में कार्य करता है)? ऐसा इसलिए होगा क्योंकि संदर्भों की प्रतियां नहीं बनाई गई हैं, इसलिए पूर्व-वृद्धि होगी: "वृद्धि जे, फिर लूप में कथन के माध्यम से जे के बदले गए मूल्य के साथ जाएं, फिर फिर से वृद्धि करें ...," जबकि पोस्ट- incremetation इस तरह दिखेगा: "लूप में बयानों के लिए जे के मान का उपयोग करें, फिर जे के मान को बदलें, फिर जे के नए मूल्य के साथ लूप के माध्यम से जाओ ..."
यह व्यवहार भाषा अज्ञेयवादी (या कम से कम, PHP के लिए विशिष्ट नहीं है) है, इसलिए यह वास्तव में एक डुप्लिकेट है [पुनरावृत्ति भाग में पोस्ट वृद्धि में पूर्व क्यों नहीं बदल रहा है लूप के लिए एक फर्क पड़ता है?] (http://stackoverflow.com/questions/1918196/why-doesnt-changing-the-pre-to-the-post-increment-at-the-iteration-part-of-a -for) –
किस चिह्न के अलावा, यह प्रश्न बताता है कि आपके पास लूप वास्तव में क्या करता है, इसकी एक मूलभूत गलतफहमी है ... इसमें कोई प्रतिलिपि शामिल नहीं है - लूप के तीसरे खंड को अंत में निष्पादित किया जाता है लूप के शरीर का। आप वहां जो भी स्टेटमेनेट पसंद करते हैं उसे डाल सकते हैं और कोई विशेष प्रतिलिपि – tobyodavies
नहीं होगी और कोई संदर्भ पॉइंटर्स के रूप में कार्य नहीं करता है। – netcoder