पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।
निम्नलिखित कथन पर विचार करें -
int qty = 179;

सूचक घोषित करना
पॉइंटर घोषित करने का सिंटैक्स इस प्रकार है -
int *p;
यहाँ, 'p' एक पॉइंटर वेरिएबल है जो अन्य वेरिएबल का पता रखता है।
सूचक का प्रारंभ
एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशियलाइज़ करने के लिए किया जाता है।
उदाहरण के लिए,
int qty = 175; int *p; p= &qty;
पॉइंटर्स की सरणी
यह पतों का संग्रह (या) पॉइंटर्स का संग्रह है।
घोषणा
पॉइंटर्स की सरणी के लिए घोषणा निम्नलिखित है -
datatype *pointername [size];
उदाहरण के लिए,
int *p[5];
यह पॉइंटर्स की एक सरणी का प्रतिनिधित्व करता है जिसमें पांच पूर्णांक तत्व पते हो सकते हैं।
आरंभीकरण
'&' का इस्तेमाल इनिशियलाइज़ेशन के लिए किया जाता है
उदाहरण के लिए,
int a[3] = {10,20,30};
int *p[3], i;
for (i=0; i<3; i++) (or) for (i=0; i<3,i++)
p[i] = &a[i];
p[i] = a+i; एक्सेस करना
इनडायरेक्शन ऑपरेटर (*) का उपयोग एक्सेस करने के लिए किया जाता है।
उदाहरण के लिए,
for (i=0, i<3; i++)
printf ("%d", *p[i]); कार्यक्रम
पॉइंटर्स का उपयोग करके सरणी तत्वों के योग की गणना करने के लिए सी प्रोग्राम निम्नलिखित है -
//sum of array elements using pointers
#include <stdio.h>
#include <malloc.h>
void main(){
int i, n, sum = 0;
int *ptr;
printf("Enter size of array : \n");
scanf("%d", &n);
ptr = (int *) malloc(n * sizeof(int));
printf("Enter elements in the List \n");
for (i = 0; i < n; i++){
scanf("%d", ptr + i);
}
//calculate sum of elements
for (i = 0; i < n; i++){
sum = sum + *(ptr + i);
}
printf("Sum of all elements in an array is = %d\n", sum);
return 0;
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70