पॉइंटर्स और ऐरे
संकलक द्वारा सरणी के सभी तत्वों के लिए निरंतर स्मृति स्थान आवंटित किए जाते हैं।
आधार पता सरणी में पहले तत्व का स्थान है।
उदाहरण के लिए, int a [5] ={10, 20,30,40,50};
पांच तत्वों को इस प्रकार संग्रहीत किया जाता है -
यदि 'पी' को पूर्णांक सूचक के रूप में घोषित किया जाता है, तो सरणी 'ए' को निम्नलिखित असाइनमेंट द्वारा इंगित किया जा सकता है -
p=a or p=&a[0];
एक तत्व से दूसरे तत्व में जाने के लिए p++ का उपयोग करके 'a' के प्रत्येक मान तक पहुँचा जाता है। जब एक सूचक को बढ़ाया जाता है, तो इसका मान उस डेटाटाइप के आकार से बढ़ जाता है जिसे वह इंगित करता है। इस लंबाई को "स्केल फैक्टर" कहा जाता है।
पॉइंटर p और वेरिएबल a के बीच संबंध नीचे दिखाया गया है -
P = &a[0] = 1000 P+1 = &a[1] = 1004 P+2 = &a[2] = 1008 P+3 = &a[3] = 1012 P+4 = &a[4] = 1016
किसी तत्व के पते की गणना उसके सूचकांक और डेटाटाइप के स्केल फैक्टर का उपयोग करके की जाती है।
उदाहरण
एक का पता[3]=आधार पता+(3*इंट का स्केल फैक्टर)
=1000+(3*4)
=1000+12
=1012
*(p+3) gives the value of a[3] a[i] = *(p+i)का मान देता है
कार्यक्रम
#include<stdio.h> main (){ int a[5]; int *p,i; clrscr (); printf (”Enter 5 lements”); for (i=0; i<5; i++) scanf (“%d”, &a[i]); p = &a[0]; printf (“Elements of the array are”); for (i=0; i<5; i++) printf(“%d”, *(p+i)); getch(); }
आउटपुट
Enter 5 elements : 10 20 30 40 50 Elements of the array are : 10 20 30 40 50