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 कभी नहीं करता। कभी-कभी कुछ कंपाइलर कोड को ऑप्टिमाइज़ करते हैं यदि संभव हो। लेकिन वह ऑप्टिमाइज़ेशन हमेशा प्रभावी नहीं होता, या सभी कंपाइलर यह काम नहीं करते।