इन्क्रीमेंट ऑपरेटर ++ अपने ऑपरेंड में 1 जोड़ता है, और डिक्रीमेंट ऑपरेटर -- अपने ऑपरेंड से 1 घटाता है। इसलिए,
x = x + 1; वही है x++; के
और इसी तरह,
x = x - 1; वही है x--; के
इन्क्रीमेंट और डिक्रीमेंट ऑपरेटर्स दोनों या तो ऑपरेंड से पहले (प्रीफिक्स) या बाद में (पोस्टफिक्स) आ सकते हैं।
x = x + 1; को ++x; के रूप में लिखा जा सकता है
ध्यान दें कि, जब इन्क्रीमेंट या डिक्रीमेंट एक एक्सप्रेशन के भाग के रूप में उपयोग किया जाता है, तो प्रीफिक्स और पोस्टफिक्स रूपों में एक महत्वपूर्ण अंतर होता है। यदि आप प्रीफिक्स रूप का उपयोग कर रहे हैं तो इन्क्रीमेंट या डिक्रीमेंट शेष एक्सप्रेशन से पहले किया जाएगा, और यदि आप पोस्टफिक्स रूप का उपयोग कर रहे हैं, तो इन्क्रीमेंट या डिक्रीमेंट संपूर्ण एक्सप्रेशन के मूल्यांकन के बाद किया जाएगा।
- प्रीफिक्स संस्करण में (यानी, ++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 का मान।
- इन मानों को प्रिंट करें