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