प्रौद्योगिकी डिग्री में, ऐसी अवधारणाएं और विषय हैं जो आम तौर पर छात्रों को डराते हैं, कुछ मुख्य उदाहरण ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और कैलकुलस से संबंधित विषय हैं, एक अन्य उदाहरण कुछ और बुनियादी धारणाएं हैं। पॉइंटर्स जैसे फ़ंक्शन, मुख्य रूप से सी में, इस आलेख का विषय।
हमारे विपरीत, कंप्यूटर कुछ जानकारी को "लेबल" या "नाम" से नहीं जानते हैं, बल्कि उस पते से जानते हैं जहां यह डेटा मेमोरी में स्थित है। हम मेमोरी को "सेल्स" के एक सेट के रूप में सोच सकते हैं जिसमें कई बिट्स होते हैं जो 0 या 1 स्टोर करते हैं और प्रत्येक सेल एक निश्चित पते से जुड़ा होता है जहां यह कुछ जानकारी संग्रहीत करता है ताकि मशीन द्वारा निष्पादित प्रोग्राम इस डेटा तक पहुंच सकें और हेरफेर कर सकें। यह। ।
इस बात को ध्यान में रखते हुए कि किसी प्रोग्राम को डेटा का उपयोग करने में सक्षम होने के लिए मेमोरी में उसका पता जानना आवश्यक है, हम एक पॉइंटर की अवधारणा की कल्पना कर सकते हैं। पॉइंटर एक वेरिएबल है जो किसी अन्य डेटा को "इंगित" करता है, यह ऐसा है जैसे कि यह मेमोरी में एक स्थान था जिसका उद्देश्य किसी अन्य वेरिएबल या जानकारी के पते को संग्रहीत करना था ताकि इसे हेरफेर किया जा सके।
लेकिन अब सवाल यह आता है कि सूचक का उपयोग क्या है? पॉइंटर मेमोरी से जुड़े कुछ और जटिल संचालन की अनुमति देता है, जैसे मॉलॉक के साथ गतिशील आवंटन या अधिक जटिल डेटा संरचनाओं का निर्माण आदि। इसके अलावा, कुछ ऐसे विवरण भी हैं जिन पर पहले तो छात्र आसानी से ध्यान नहीं दे पाते, जैसे कि यह तथ्य कि वेक्टर का नाम एक सूचक है। यह सही है, एक वेक्टर एक "निश्चित सूचक" से अधिक कुछ नहीं है जो स्मृति में एक निश्चित स्थिति की ओर इशारा करता है और हम आवश्यकता के अनुसार हेरफेर करने के लिए सूचकांक का उपयोग करते हैं।
एक अन्य उपयोग संदर्भ द्वारा डेटा में हेरफेर करना है, उदाहरण के लिए: एक सरणी को किसी अन्य फ़ंक्शन के पैरामीटर के रूप में पास करना, मूल सरणी को संशोधित करने की अनुमति देना बजाय पारित मूल्य या ऑब्जेक्ट को सिर्फ एक प्रतिलिपि बनाना, कुछ ऐसा, उदाहरण के लिए, जावास्क्रिप्ट में होता है जहां वहाँ सूचक की कोई अवधारणा नहीं है (कम से कम स्पष्ट रूप से नहीं), उदाहरण के लिए:
#includeint vet [5] ={10,20,3,4}; void somadez(int * ref){ for(int i=0;i पॉइंटर्स का एक और इतना स्पष्ट उपयोग नहीं, इस बार ऑब्जेक्ट-ओरिएंटेड भाषाओं के लिए, जहां हम, उदाहरण के लिए, गतिशील ऑब्जेक्ट बना सकते हैं और विरासत और बहुरूपता के साथ काम की सुविधा प्रदान कर सकते हैं।
हमारे पास C के साथ यह उदाहरण नीचे है:
#includeusing namespace std; class Animal{ public: virtual void som(); }; class Cachorro : public Animal{ public: void som(){ cout som(); //neste caso podemos usar o ponteiro para acessar métodos e atributos de uma classe derivada. return 0; }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3