इस सेक्शन में हम देखेंगे कि C++ में *ptr++, *++ptr और ++*ptr के बीच क्या अंतर हैं।
यहां हम C या C++ में पोस्टफिक्स++ और प्रीफिक्स++ की प्रीसिडेंस देखेंगे। प्रीफिक्स ++ या -- की प्रीसिडेंस डीरेफरेंस ऑपरेटर '‘*’' से अधिक होती है और पोस्टफिक्स ++ या -- की प्रीसिडेंस प्रीफिक्स ++ और डीरेफरेंस ऑपरेटर '‘*’' दोनों से अधिक होती है।
जब ptr एक पॉइंटर है, तो *ptr++ का अर्थ *(ptr++) होता है और ++*prt का अर्थ ++(*ptr) होता है
उदाहरण कोड
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; ++*ptr; cout << *ptr; return 0; }आउटपुट
I
तो यहां पहले ptr 'H' की ओर इशारा कर रहा है। ++*ptr का उपयोग करने के बाद यह H को 1 से बढ़ाता है, और अब मान 'I' है।
उदाहरण कोड (C++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *ptr++; cout << *ptr; return 0; }आउटपुट
e
तो यहां पहले ptr 'H' की ओर इशारा कर रहा है। *ptr++ का उपयोग करने के बाद यह पॉइंटर को बढ़ाता है, इसलिए ptr अगले एलिमेंट की ओर इशारा करेगा। इसलिए परिणाम 'e' है।
उदाहरण कोड (C++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *++ptr; cout << *ptr; return 0; }आउटपुट
e
इस उदाहरण में भी हम ++ का उपयोग करके ptr को बढ़ा रहे हैं, जहां प्री-इन्क्रीमेंट ++ की प्रीसिडेंस अधिक है, फिर यह पहले पॉइंटर को बढ़ाता है, फिर * का उपयोग करके मान लेता है। इसलिए यह 'e' प्रिंट कर रहा है।