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

C++ में +**p, *p++ और *++p के बीच अंतर

इस खंड में हम देखेंगे कि 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 बढ़ा रहे हैं, जहां प्री-इंक्रीमेंट ++ की प्राथमिकता अधिक है, फिर यह पहले पॉइंटर को बढ़ाता है, फिर * का उपयोग करके मान लेता है। इसलिए यह 'ई' प्रिंट कर रहा है।


  1. सी ++ में नए ऑपरेटर और ऑपरेटर के बीच अंतर?

    C++ में जब हम एक नई वस्तु बनाना चाहते हैं, तो हमें मेमोरी में एक मेमोरी ब्लॉक बनाना होगा, फिर मेमोरी ब्लॉक को इनिशियलाइज़ करने के लिए कंस्ट्रक्टर को भी कॉल करना होगा। हम new कीवर्ड का उपयोग करके मेमोरी एलिमेंट बना सकते हैं। यह नया ऑपरेटर लगातार दो टास्क कर रहा है। लेकिन ऑपरेटर नया केवल मेमोरी स्पेस

  1. सी ++ में 'स्ट्रक्चर' और 'टाइपिफ़ स्ट्रक्चर' के बीच अंतर?

    C++ में, struct और typedef struct के बीच कोई अंतर नहीं है, क्योंकि C++ में, सभी struct/union/enum/class घोषणाएं इस तरह काम करती हैं जैसे वे परोक्ष रूप से typedef हैं। एड, जब तक नाम उसी नाम के साथ किसी अन्य घोषणा द्वारा छिपाया नहीं जाता है। हालांकि एक सूक्ष्म अंतर है कि टाइपपीफ को आगे घोषित नहीं किया

  1. C++ स्ट्रिंग स्थिरांक और वर्ण स्थिरांक के बीच अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल होता है। यह चार प्रकार का है। उदाहरण के लिए, ए ASCII आधारित सिस्टम पर 97 के मान के साथ चार प्रकार का है। दोहरे उद्धरण चिह्नों में एक वर्ण या वर्णों की एक स्ट्रिंग एक स्ट्रिंग अक्षर का प्रतिनिधित्व करती है। यह प्रकार का है const char[] और स्ट्रि