एक पॉइंटर एक वेरिएबल होता है जिसका मान दूसरे वेरिएबल का पता होता है, यानी मेमोरी लोकेशन का सीधा पता। किसी भी चर या स्थिरांक की तरह, किसी भी चर पते को संग्रहीत करने के लिए इसका उपयोग करने से पहले आपको एक सूचक घोषित करना होगा।
निम्नलिखित कथन पर विचार करें -
int qty = 179;
मेमोरी में वेरिएबल का प्रतिनिधित्व इस प्रकार है -
आप एक पॉइंटर को इस प्रकार घोषित कर सकते हैं -
Int *p;
इसका मतलब है कि 'p' एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है।
एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशियलाइज़ करने के लिए किया जाता है।
उदाहरण के लिए -
int qty = 175; int *p; p= &qty;
वेरिएबल के मान को एक्सेस करने के लिए, इनडायरेक्शन ऑपरेटर (*) का उपयोग किया जाता है।
उदाहरण के लिए -
'*' को पते पर मान के रूप में माना जा सकता है।
दो कथन निम्नलिखित कथन के समतुल्य हैं -
p = &qty; n = *p; n =qty
विभिन्न सूचक संचालन
सी भाषा में पॉइंटर संचालन नीचे समझाया गया है -
-
असाइनमेंट - हम &(एड्रेस ऑपरेटर) का उपयोग करके पॉइंटर को एड्रेस असाइन कर सकते हैं।
-
मूल्य खोज - यह और कुछ नहीं बल्कि डीरेफ्रेंसिंग है, जहां * ऑपरेटर पॉइंट टू लोकेशन में स्टोर वैल्यू देता है।
-
सूचक पता लेना - अन्य वेरिएबल्स की तरह, पॉइंटर वेरिएबल्स में एक एड्रेस के साथ-साथ एक वैल्यू भी होती है, एड्रेस ऑपरेटर की मदद से हम पा सकते हैं कि पॉइंटर खुद स्टोर किया गया था।
-
सूचक में पूर्णांक जोड़ना - हम + ऑपरेटर का उपयोग किसी पॉइंटर में पूर्णांक या पूर्णांक में पॉइंटर जोड़ने के लिए कर सकते हैं। यहां, दोनों ही मामलों में int को पॉइंट टू टाइप में बाइट्स की संख्या से गुणा किया जाता है, और परिणाम मूल पते में जोड़ा जाता है।
-
सूचक बढ़ाना - यह एक ऐरे एलिमेंट है जो ऐरे के अगले एलिमेंट में ले जाता है।
-
एक पॉइंटर से एक इंट घटाना - हम एक पॉइंटर से एक पूर्णांक घटाने के लिए - (माइनस) ऑपरेटर का उपयोग कर रहे हैं। पूर्णांक को पॉइंट टू टाइप में बाइट्स की संख्या से गुणा किया जाता है, और परिणाम मूल पते से घटा दिया जाता है।
-
सूचक घटाना - डिक्रीमेंटिंग पॉइंटर, पहले के बजाय पिछले स्थान की ओर इशारा करता है, हम डिक्रीमेंट ऑपरेटर के लिए प्री और पोस्टफिक्स दोनों फॉर्म का उपयोग कर सकते हैं।
-
घटाव - हम दो बिंदुओं का अंतर पा सकते हैं। आम तौर पर, हम यह पता लगाते थे कि तत्व कितने अलग हैं।
-
तुलना - हम दो पॉइंटर्स के मानों की तुलना करने के लिए रिलेशनल ऑपरेटर का उपयोग करेंगे।
उदाहरण
सी भाषा में सूचक संचालन के कामकाज को प्रदर्शित करने का कार्यक्रम नीचे दिया गया है -
#include<stdio.h> main ( ){ int x,y; //Declaring a pointer int *p; clrscr ( ); x= 10; //Assigning value to a pointer p = &x; y= *p; printf ("Value of x = %d", x); printf ("x is stored at address %u", &x); printf ("Value of x using pointer = %d", *p); printf ("address of x using pointer = %u", p); printf (“value of x in y = %d", y); *p = 25; printf ("now x = %d", x) getch ( ); }
आउटपुट
जब आप ऊपर बताए गए प्रोग्राम को निष्पादित करते हैं, तो आपको निम्न आउटपुट मिलता है -
Value of x = 10 x is stored at address = 5000 Address of x using pointer = 10 Address of x using pointer = 5000 Value of x in y = 10 Now x = 25