पॉइंटर्स की सरणी
किसी भी अन्य डेटा प्रकार की तरह, हम भी एक सूचक सरणी घोषित कर सकते हैं।
घोषणा
datatype *pointername [size];
उदाहरण के लिए, int *p[5]; // यह पॉइंटर्स की एक सरणी का प्रतिनिधित्व करता है जिसमें 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]);
उदाहरण
#include<stdio.h> main (){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; //initializing base address of array printf (elements of the array are”) for (i=0; i<3; i++) printf ("%d \t", *p[i]); //printing array of pointers getch(); }
आउटपुट
elements at the array are : 10 20 30
सूचक से सूचक
पॉइंटर टू पॉइंटर एक वेरिएबल है जो दूसरे पॉइंटर का पता रखता है।
घोषणा
datatype ** pointer_name;
उदाहरण के लिए, int **p; //p सूचक का सूचक है
आरंभीकरण
आरंभीकरण के लिए '&' का उपयोग किया जाता है।
जैसे -
int a = 10; int *p; int **q; p = &a;
एक्सेस करना
इनडायरेक्शन ऑपरेटर (*) का उपयोग एक्सेस करने के लिए किया जाता है।
उदाहरण
#include<stdio.h> main (){ int a = 10; int *p; int **q; p = &a; q = &p; printf("a =%d",a); printf("a value through pointer = %d", *p); printf("a value through pointer to pointer = %d", **q); }
आउटपुट
a=10 a value through pointer = 10 a value through pointer to pointer = 10