पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।
पॉइंटर का सिंटैक्स इस प्रकार है -
pointer = &variable;
पॉइंटर्स के प्रकार
आठ अलग-अलग प्रकार के पॉइंटर्स हैं जो इस प्रकार हैं -
-
शून्य सूचक
-
शून्य सूचक
-
जंगली सूचक
-
लटकता हुआ सूचक
-
जटिल सूचक
-
पॉइंटर के पास
-
सुदूर सूचक
-
विशाल सूचक
नल पॉइंटर
आप सूचक घोषणा के समय शून्य मान निर्दिष्ट करके एक शून्य सूचक बनाते हैं।
यह विधि तब उपयोगी होती है जब आप सूचक को कोई पता निर्दिष्ट नहीं करते हैं। एक नल पॉइंटर में हमेशा मान 0 होता है।
उदाहरण
नल पॉइंटर के लिए सी प्रोग्राम निम्नलिखित है -
#include <stdio.h> int main(){ int *ptr = NULL; //null pointer printf("The value inside variable ptr is:\n%d",ptr); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
The value inside variable ptr is: 0
शून्य सूचक
यह एक ऐसा सूचक है जिसके साथ कोई संबद्ध डेटा प्रकार नहीं है। एक शून्य सूचक किसी भी प्रकार के पते धारण कर सकता है और किसी भी प्रकार के लिए टाइपकास्ट किया जा सकता है।
इसे एक सामान्य सूचक भी कहा जाता है और इसका कोई मानक डेटा प्रकार नहीं होता है।
यह कीवर्ड शून्य का उपयोग करके बनाया गया है।
उदाहरण
शून्य सूचक के लिए सी कार्यक्रम निम्नलिखित है -
#include <stdio.h> int main(){ void *p = NULL; //void pointer printf("The size of pointer is:%d\n",sizeof(p)); //size of p depends on compiler return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
The size of pointer is:8
जंगली सूचक
वाइल्ड पॉइंटर्स को अनइनिशियलाइज़्ड पॉइंटर्स भी कहा जाता है। क्योंकि वे कुछ मनमानी मेमोरी लोकेशन की ओर इशारा करते हैं और प्रोग्राम के क्रैश होने या खराब व्यवहार करने का कारण बन सकते हैं।
इस प्रकार का C पॉइंटर कुशल नहीं है। क्योंकि वे किसी अज्ञात स्मृति स्थान की ओर इशारा कर सकते हैं जो हमारे कार्यक्रम में समस्या पैदा कर सकता है। इससे प्रोग्राम क्रैश हो सकता है।
वाइल्ड पॉइंटर्स के साथ काम करते समय सतर्क रहने की सलाह दी जाती है।
उदाहरण
वाइल्ड पॉइंटर के लिए C प्रोग्राम निम्नलिखित है -
#include <stdio.h> int main(){ int *p; //wild pointer printf("\n%d",*p); return 0; } Process returned -1073741819 (0xC0000005) execution time : 1.206 s Press any key to continue i.e. you won’t get output, some compilers show error message at output