++ के सफ़िक्स और प्रीफिक्स संस्करणों के बीच एक बड़ा अंतर है।
- प्रीफिक्स संस्करण में (यानी, ++i), 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
ऐसा क्यों है? आइए इसे विस्तार से देखें:
- x को 3 से आरंभ करें
- y को x++ एक्सप्रेशन का मूल्यांकन करके प्राप्त मान असाइन करें, यानी इन्क्रीमेंट से पहले x का मान फिर x को इन्क्रीमेंट करें।
- x को इन्क्रीमेंट करें फिर z को ++x एक्सप्रेशन का मूल्यांकन करके प्राप्त मान असाइन करें, यानी इन्क्रीमेंट के बाद x का मान।
- इन मानों को प्रिंट करें