] जो अप्रत्यक्ष रूप से संबंधित हैं। एक एकल सूचक (जैसे, char *ptr) एक मेमोरी स्थान की ओर इशारा करता है जो वास्तविक डेटा का पता रखता है। एक डबल पॉइंटर (जैसे, चार ** पीटीआर) एक मेमोरी लोकेशन की ओर इशारा करता है जो एक पॉइंटर का पता रखता है, जो स्वयं डेटा की ओर इशारा करता है। एक ट्रिपल पॉइंटर (जैसे, चार *** ptr) अप्रत्यक्ष का एक और स्तर जोड़ता है।
जब पॉइंटर्स के कई स्तरों का उपयोग करना समझ में आता है:
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग: ] उदाहरण के लिए, निम्नलिखित C वर्ग संरचना पर विचार करें:
कक्षा a { जनता: चार *बी; }; कक्षा बी { जनता: char *c; }; A के एक उदाहरण से चार मान तक पहुंचने के लिए, हमें ट्रिपल डेरेफ्रेंसिंग का उपयोग करने की आवश्यकता होगी:
a; char *value = *** A.B.C; उदाहरण के लिए, एक 2 डी सरणी को एक डबल पॉइंटर का उपयोग करके लागू किया जा सकता है:
चार ** सरणी; सरणी = नया चार*[पंक्तियाँ]; for (int i = 0; i सरणी में एक तत्व तक पहुंचने के लिए, हम डबल डेरेफ्रेंसिंग का उपयोग करेंगे:
] उदाहरण के लिए, एक लिंक की गई सूची में, प्रत्येक नोड में अगले नोड के लिए एक सूचक होता है। सूची को पार करने के लिए, हमें अगले नोड तक पहुंचने के लिए पॉइंटर को समाप्त करने की आवश्यकता है:संरचना नोड { INT डेटा; नोड *अगला; }; नोड *सिर; जबकि (सिर! = null) { int data = head-> डेटा; सिर = सिर-> अगला; … उदाहरण के लिए, एक डबल पॉइंटर का उपयोग पॉइंटर्स की एक सरणी के लिए मेमोरी आवंटित करने के लिए किया जा सकता है:
class A { public: char *b; }; class B { public: char *c; };int ** सरणी; सरणी = नया int*[आकार]; // मेमोरी को डील करें: for (int i = 0; i
A a; char *value = ***a.b.c;
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3