Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में ++i और i++ में क्या अंतर है?


++ के सफ़िक्स और प्रीफिक्स संस्करणों के बीच एक बड़ा अंतर है।

  • प्रीफिक्स संस्करण में (यानी, ++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 का मान।
  • इन मानों को प्रिंट करें
  1. - C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में क्लास के मेंबर्स को एक्सेस करने के लिए किया जाता है। वे केवल अलग-अलग परिदृश्यों में उपयोग किए जाते हैं। C++ में, क्लास, स्ट्रक्चर, या यूनियन के रूप में घोषित प्रकारों को क्लास टाइप का माना जाता है। इसलिए निम्नलिखित उन सभी तीनों को संदर्भित करता है। a.b केवल

  1. - C# में पास बाय वैल्यू और रेफरेंस पैरामीटर्स में अंतर

    पास बाय वैल्यू (Pass by Value) - डिफ़ॉल्ट यह पैरामीटर्स पास करने का डिफ़ॉल्ट तंत्र है। जब कोई मेथड कॉल किया जाता है, तो प्रत्येक वैल्यू पैरामीटर के लिए एक नया स्टोरेज लोकेशन बनाया जाता है। वास्तविक पैरामीटर्स के मान इसमें कॉपी किए जाते हैं। इसलिए, मेथड के अंदर पैरामीटर में किए गए परिवर्तनों का आर्गु

  1. - C# में डिक्लेरेशन और डेफिनिशन में अंतर

    डिक्लेरेशन (घोषणा) और डेफिनिशन (परिभाषा/आरंभीकरण) अलग-अलग अवधारणाएं हैं। वेरिएबल्स // डिक्लेरेशन - केवल नाम और टाइप int x; // डेफिनिशन/इनिशियलाइजेशन - मान निर्दिष्ट x = 10; // संयुक्त int y = 20; ऐरे // डिक्लेरेशन int[] n; // इनिशियलाइजेशन - मेमोरी आवंटन n = new int[10]; // असाइनमेंट - एलिमें