पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।
सुविधाएं
-
पॉइंटर मेमोरी स्पेस को बचाता है।
-
मेमोरी लोकेशन तक सीधी पहुंच के कारण पॉइंटर का निष्पादन समय तेज होता है।
-
पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है, यानी मेमोरी आवंटित की जाती है और गतिशील रूप से हटा दी जाती है।
-
पॉइंटर्स का उपयोग डेटा संरचनाओं के साथ किया जाता है।
पॉइंटर्स और दो आयामी सरणियाँ
द्वि-आयामी सरणी के लिए मेमोरी आवंटन इस प्रकार है -
int a[3] [3] = {1,2,3,4,5,6,7,8,9};


a[1] [2] = *(1234 + 1*3+2) = *(1234 + 3+2) = *(1234 + 5*4) // 4 is Scale factor = * (1234+20) = *(1254) a[1] [2] = 6
उदाहरण
पॉइंटर्स और द्वि-आयामी सरणी के लिए सी प्रोग्राम निम्नलिखित है -
#include<stdio.h>
main ( ){
int a[3] [3], i,j;
int *p;
clrscr ( );
printf ("Enter elements of 2D array");
for (i=0; i<3; i++){
for (j=0; j<3; j++){
scanf ("%d", &a[i] [j]);
}
}
p = &a[0] [0];
printf ("elements of 2d array are");
for (i=0; i<3; i++){
for (j=0; j<3; j++){
printf ("%d \t", *(p+i*3+j));
}
printf ("\n");
}
getch ( );
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter elements of 2D array 1 2 3 4 5 6 7 8 9 Elements of 2D array are 1 2 3 4 5 6 7 8 9