इन्क्रीमेंट ऑपरेटर ++ अपने ऑपरेंड में 1 जोड़ता है, और डिक्रीमेंट ऑपरेटर - इसके ऑपरेंड से 1 घटाता है। तो,
x = x+1; is the same as x++;
और इसी तरह,
x = x-1; is the same as x--;
इंक्रीमेंट और डिक्रीमेंट दोनों ऑपरेटर या तो ऑपरेंड से पहले (उपसर्ग) या फॉलो (पोस्टफिक्स) कर सकते हैं।
x = x+1; can be written as ++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 प्रारंभ करें
- x++ एक्सप्रेशन का मूल्यांकन करके हमें जो मान मिलता है, उसे y असाइन करें, यानी वेतन वृद्धि से पहले x का मान और फिर x बढ़ाएँ।
- इनक्रीमेंट x फिर z को वह मान असाइन करें जो हमें एक्सप्रेशन ++x, यानी इंक्रीमेंट के बाद x के मान का मूल्यांकन करके मिलता है।
- इन मानों को प्रिंट करें