i++ और++i का प्रभावी परिणाम समान है। अंतर केवल इतना है कि i++ असाइन करने के बाद i का मान बढ़ाता है, और ++i के लिए, यह पहले मान बढ़ाता है, फिर उसका मान निर्दिष्ट करता है। हम निम्नलिखित कोड में अंतर देख सकते हैं।
उदाहरण कोड
#include<iostream> using namespace std; int main() { int x = 3, y, z; y = x++; z = ++x; cout << x << ", " << y << ", " << z; return 0; }
आउटपुट
5, 3, 5
अब, सवाल यह आता है कि चूंकि वे एक ही कार्य कर रहे हैं लेकिन अलग-अलग क्रम में, तो क्या कोई प्रदर्शन समस्या है या दोनों समान हैं?
खैर, इन परिचालनों का प्रदर्शन अंतर्निहित वास्तुकला पर अत्यधिक निर्भर है। एक वृद्धिशील मूल्य है जो स्मृति में संग्रहीत होता है, इसका मतलब है कि वॉन-न्यूमैन बाधा मूल रूप से दोनों मामलों में सीमित कारक है।
हालांकि हम कह सकते हैं कि ++i, i++ से थोड़ा तेज है। i++ वृद्धि करने से पहले i के मान की स्थानीय प्रतिलिपि लेता है, जबकि ++i कभी नहीं करता है। कभी-कभी कुछ कंपाइलर यदि संभव हो तो कोड को अनुकूलित करते हैं। लेकिन वह अनुकूलन हमेशा प्रभावी नहीं होता है, या सभी कंपाइलर ऐसा नहीं करते हैं।