पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है।
निम्नलिखित कथन पर विचार करें -
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