पॉइंटर्स क्या है?

पॉइंटर एक विशेष प्रकार का वेरिएबल होता है, जिसका उपयोग दूसरे वेरिएबल या ऑब्जेक्ट के एड्रेस को स्टोर करने के लिए किया जाता है। Pointer Variable Address को प्रदर्शित करने का एक प्रकार है। Pointer से दो ऑपरेटर सम्बंधित होते हैं।

  1. & (ampersand operator) जिसे हम address of पड़ते हैं|
  2. * (Pointer or indirection) जिसे हम value of पड़ते हैं|

जब भी किसी वेरिएबल को declare किया जाता हैं तो वह मेमोरी में एक विशेष स्‍थान पर Store होता हैं जिसे वेरिएबल का मेमोरी एड्रेस कहा जाता हैं। यह एड्रेस एक विशेष Symbol से Start होता हैं। जब भी हम किसी Variable को Call करते हैं या उसमें किसी value को Assign करते हैं तो Compiler Variable के Memory Address से उसे Access करता हैं। Pointer के द्वारा Variable के Memory Address को सीधे Access किया जा सकता हैं।

Pointer दुसरे Data Type की तरह ही एक data Type हैं जो Memory में खुद के लिये भी एक Address लेता हैं। C++ में use होने वाले कुछ Pointer Value निम्‍नलिखित हैं।

  • Pointer to Character – Char*
  • Pointer to Integer – int*
  • Pointer to Float – Float*
  • Pointer to Union – Union*
  • Pointer to Class – Class Name*
  • Pointer to Pointer – Char**, int**, float**

किसी भी Pointer variable को declare करने का Syntax निम्‍नलिखित हैं –

Syntax

pointer_datatype *variable name;

Example


int *a;

उपरोक्‍त उदाहरण में हमने a नाम का एक Variable declare किया हैं जिसका data type int* हैं। (Pointer to Integer) हैं। memory में a के लिए एक Space Allot किया जायेगा न कि एक *a के लिये। Pointer को समझने हेतु निम्‍न उदाहरण का प्रयोग करते हैं –

#include<iostream.h>
#include<conio.h>

void main()
{
clrscr();
Int x; // x is integer variable
Int *a; // a is pointer to integer
x = 1000;
a = &x;
cout<<“\n value of x =”<<x;
cout<<“\n Address of x =”<<&x;
cout<<“\n value of pointer =”<<a;
cout<<“\n value of store address in pointer =”<< *a;
}

Advantage of using pointers

  1. पॉइंटर्स मेमोरी की सीधी पहुंच प्रदान करते हैं|
  2. पॉइंटर्स फ़ंक्शन को एक से अधिक मान वापस करने का एक तरीका प्रदान करते हैं|
  3. प्रोग्राम के लिए जरुरी स्टोरेज को कम करने में पॉइंटर्स मदद करते हैं|
  4. प्रोग्राम के निष्पादन समय (Execution time) को कम करता है|
  5. ऐरे के सभी elements को access करने के लिए भी हम पॉइंटर्स का प्रयोग कर सकते हैं|
  6. कॉलिंग फ़ंक्शन और कॉल फ़ंक्शन के बीच value को भेजने के लिए भी पॉइंटर्स का प्रयोग आसानी से किया जा सकता है|
  7. पॉइंटर्स हमें डायनामिक मेमोरी एलोकेशन और डीलक्लोकेशन करने की अनुमति प्रदान करता है।
  8. पॉइंटर्स जटिल डेटा स्ट्रक्चर्स जैसे लिंक्ड लिस्ट, स्टैक, क्यू, ट्री, ग्राफ आदि के निर्माण में हमारी मदद करते हैं।

Disadvantage of using pointers

  1. Uninitialized पॉइंटर्स सेगमेंटेशन फ़ॉल्ट का कारण हो सकता है।
  2. डायनामिक मेमोरी एलोकेशन के द्वारा आवंटित मेमोरी ब्लॉक को स्पष्ट रूप से मुक्त करने की आवश्यकता है। अन्यथा, यह मेमोरी लीक (Memory Leak) का कारन बनता है।
  3. पॉइंटर्स सामान्य वेरिएबल की तुलना में धीमे होते हैं।
  4. यदि पॉइंटर्स को गलत मानों के साथ अपडेट किया जाता है, तो इससे मेमोरी करप्शन हो सकती है।

error: Content is protected !!