![]() |
pointer in hindi And what does a pointer do in hindi with example |
एक pointer एक variable है। अन्य variable की तरह, इसमें एक डेटा प्रकार और एक पहचानकर्ता है। हालाँकि, पॉइंटर्स का उपयोग एक ऐसे तरीके से किया जाता है जो मूल रूप से "सामान्य" variable का उपयोग करने के तरीके से अलग होता है, और हमें compiler को यह बताने के लिए एक asterisk (*) शामिल करना होगा कि एक variable को एक pointer के रूप में माना जाना चाहिए। यहाँ pointer घोषणा के दो उदाहरण हैं:
char *ptr1;
int *ptr2;
पहचानकर्ता को characters (जैसे "ptr") को शामिल करने की आवश्यकता नहीं होती है जो variable को एक संकेतक के रूप में चिह्नित करता है। Understand what does a pointer do in hindi
यह specifically करता है। अधिक विशेष रूप से, यह दूसरे variable के डेटा, या ऐसे डेटा की ओर इशारा करता है जो मेमोरी में संग्रहीत होता है, लेकिन एक variable के साथ जुड़ा नहीं होता है।हम आमतौर पर एक variable के बारे में सोचते हैं जो डेटा संग्रहीत करता है, और "डेटा" से हमारा मतलब है कि जानकारी का उपयोग एक अभिकलन में किया जाएगा, या किसी अन्य डिवाइस पर भेजा जाएगा, या एक कॉन्फ़िगरेशन रजिस्टर में लोड किया जाएगा, या एलसीडी पिक्सल को नियंत्रित करने के लिए उपयोग किया जाएगा। एक संकेतक एक variable है, लेकिन इस प्रकार के डेटा को संग्रहीत करने के लिए इसका उपयोग नहीं किया जाता है। बल्कि, एक पॉइंटर एक मेमोरी एड्रेस को स्टोर करता है।
शायद यह वह बिंदु है जिस पर कुछ लोग थोड़ा भ्रमित होने लगते हैं, और मुझे लगता है कि ऐसा इसलिए होता है क्योंकि प्रोसेसर की मेमोरी की भौतिक वास्तविकता से दृष्टि खोना आसान है।
मेमोरी का एक ब्लॉक डिजिटल स्टोरेज कोशिकाओं का एक संग्रह है जो समूहों में व्यवस्थित होते हैं। 8-बिट प्रोसेसर के मामले में, भंडारण कोशिकाओं का प्रत्येक समूह एक बाइट से मेल खाता है। एक समूह को दूसरे से अलग करने का एकमात्र तरीका एक पते के माध्यम से है, और यह पता केवल एक संख्या है।
पॉइंटर एक वैरिएबल होता है जो एक नंबर को स्टोर करता है, लेकिन इस नंबर को Address के रूप में व्याख्या किया जाता है - यानी, मान के रूप में जो मेमोरी में एक सटीक स्थान निर्दिष्ट करता है।
Example For Pointer in hindi
आइए एक संक्षिप्त सादृश्य के साथ इस अवधारणा को सुदृढ़ करें। कल्पना कीजिए कि मैं एक पुस्तकालय में खड़ा हूं और कोई मेरे पास आता है और कहता है, "रिचर्ड द लायनहार्ट कौन है?" अगर मैं यह कहकर जवाब देता हूं, "1189 से 1199 तक इंग्लैंड के राजा," मैं एक सामान्य variable की तरह हूं।
मैं वह जानकारी, डेटा, जो व्यक्ति चाहता है, प्रदान कर रहा हूं। इसके विपरीत, अगर मैं मध्यकालीन इंग्लैंड के मोनार्क्स नामक पुस्तक पर इंगित करके प्रतिक्रिया देता हूं, तो मैं एक pointer की तरह हूं। वांछित डेटा प्रदान करने के बजाय, मैं ठीक से संकेत कर रहा हूं कि वह डेटा कहां मिल सकता है। मेरे पास अभी भी उपयोगी जानकारी है, लेकिन जानकारी स्वयं तथ्य नहीं है - यह वह स्थान है जहां व्यक्ति उस तथ्य तक पहुंच सकता है।
Understanding Pointer Data Types In Hindi
जैसा कि आपने ऊपर दिखाए गए उदाहरणों में देखा होगा, पॉइंटर्स एक डेटा प्रकार के साथ घोषित किए जाते हैं। शायद यह समझने की कठिनाई में योगदान देता है कि pointer वास्तव में क्या है। यदि कोई पॉइंटर केवल एक संख्या है जो मेमोरी लोकेशन के पते से मेल खाती है, तो विभिन्न डेटा प्रकार कैसे खेलते हैं? उदाहरण के लिए, यदि आपके माइक्रोकंट्रोलर में 4 kB RAM है, तो आप कभी भी डेटा प्रकार के char के साथ पॉइंटर कैसे दे सकते हैं? एक अहस्ताक्षरित चार का अधिकतम मूल्य 255 है; क्या होता है यदि यह पॉइंटर (pointer in hindi) एक variable के लिए इंगित करना चाहिए जो मेमोरी एड्रेस 3000 पर स्थित है?
इस समस्या को समझने की कुंजी निम्नलिखित है: एक pointer का डेटा प्रकार इंगित नहीं करता है कि इसके मूल्य को संग्रहीत करने के लिए कितने बाइट्स का उपयोग किया जाता है। बल्कि, एक पॉइंटर के मूल्य को स्टोर करने के लिए उपयोग किए जाने वाले बाइट्स की संख्या, उन मेमोरी एड्रेस की संख्या से मेल खाती है, जिन्हें पॉइंटर के डेटा प्रकार की परवाह किए बिना एक्सेस किया जाना चाहिए। इसके अलावा, एक पॉइंटर का आकार कंपाइलर द्वारा निर्धारित किया जाता है और सीधे प्रोग्रामर को दिखाई नहीं देता है।
pointer in hindi |
मान लें कि हम एक दयनीय माइक्रोकंट्रोलर का उपयोग कर रहे हैं जिसमें केवल 11 बाइट्स रैम है। 8-बिट संख्या द्वारा ऑफ़र किए गए मानों की सीमा 0 से 255 है, इसलिए इस डिवाइस में सभी संभावित मेमोरी स्थानों का प्रतिनिधित्व करने के लिए मेमोरी का एक बाइट पर्याप्त से अधिक है।
आरेख इस तथ्य पर जोर देता है कि जब तक घोषित एक variable भी एक-बाइट pointer के माध्यम से पहुँचा जा सकता है। नीला variable एक pointer है जो 32-बिट variable सेकंड्स_कंट का पता रखता है। यह variable स्मृति के चार बाइट्स का उपयोग करता है, लेकिन variable का पता (जो इस उदाहरण में कम से कम महत्वपूर्ण बाइट से मेल खाता है) हमेशा एक संख्या 0x0A के बराबर या उससे कम होगा।
pointer को डेटा प्रकार के साथ लंबा घोषित किया जाना चाहिए क्योंकि यह लंबे variable के साथ संयोजन में उपयोग किया जाता है, लेकिन pointer in hindi स्वयं मेमोरी का एक बाइट खाता है, चार नहीं।
0 Comments:
Post a Comment