पॉइंटर्स वेरिएबल्स के मेमोरी स्थान या पते को संग्रहीत करते हैं। दूसरे शब्दों में, पॉइंटर्स एक मेमोरी स्थान को संदर्भित करते हैं और उस मेमोरी स्थान पर संग्रहीत मान को प्राप्त करना पॉइंटर को डीरेफरेंस करना कहलाता है।
एक प्रोग्राम जो सरणी के एकल एलिमेंट को एक्सेस करने के लिए पॉइंटर्स का उपयोग करता है, निम्नलिखित है:
उदाहरण
#include <iostream> using namespace std; int main() { int arr[5] = {5, 2, 9, 4, 1}; int *ptr = &arr[2]; cout<<"सरणी में दूसरे इंडेक्स का मान है: "<< *ptr; return 0; } आउटपुट
सरणी में दूसरे इंडेक्स का मान है: 9
उपरोक्त प्रोग्राम में, पॉइंटर ptr सरणी में तीसरे इंडेक्स पर एलिमेंट का पता संग्रहीत करता है यानी 9।
यह निम्नलिखित कोड स्निपेट में दिखाया गया है।
int *ptr = &arr[2];
पॉइंटर को डीरेफरेंस किया जाता है और इंडायरेक्शन (*) ऑपरेटर का उपयोग करके मान 9 प्रदर्शित किया जाता है। यह निम्नानुसार प्रदर्शित होता है।
cout<<"सरणी में दूसरे इंडेक्स का मान है: "<< *ptr;
एक अन्य प्रोग्राम जिसमें एकल पॉइंटर का उपयोग करके सरणी के सभी एलिमेंट्स को एक्सेस किया जाता है, निम्नलिखित है।
उदाहरण
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int *ptr = &arr[0]; cout<<"सरणी में मान हैं: "; for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; } return 0; } आउटपुट
सरणी में मान हैं: 1 2 3 4 5
उपरोक्त प्रोग्राम में, पॉइंटर ptr सरणी के पहले एलिमेंट का पता संग्रहीत करता है। यह निम्नानुसार किया जाता है।
int *ptr = &arr[0];
इसके बाद, पॉइंटर को डीरेफरेंस करके सरणी में सभी एलिमेंट्स को प्रिंट करने के लिए फॉर लूप का उपयोग किया जाता है। लूप के प्रत्येक पुनरावृत्ति में पॉइंटर बढ़ाया जाता है यानी प्रत्येक लूप पुनरावृत्ति पर, पॉइंटर सरणी के अगले एलिमेंट की ओर इंगित करता है। फिर उस सरणी मान को प्रिंट किया जाता है। यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; }