पाठ 19 / 36
पॉइंटर के मूल तत्व
एक वेरिएबल जो मेमोरी एड्रेस स्टोर करता है।
पॉइंटर एक घर का पता है
सामान्य वेरिएबल एक ऐसा घर है जिसमें मान रखा है। पॉइंटर एक कागज़ का टुकड़ा है जिस पर उस घर का पता लिखा है — घर खुद नहीं।
& और * — एड्रेस-ऑफ और डीरेफ़रेंस
&x से x का एड्रेस मिलता है। *p उस एड्रेस पर मौजूद मान पढ़ता (या लिखता) है जो p में है।
int x = 10;
int *p = &x; // p holds x's address
printf("%d\n", x); // 10
printf("%d\n", *p); // 10 -- value at that address
*p = 20; // change x through p
printf("%d\n", x); // 20
Output:
10 10 20
घोषित टाइप मायने रखता है
int *p का मतलब है "p एक int की ओर इशारा करता है", न कि "*p int है"। घोषणा में * पॉइंटर के टाइप का हिस्सा है, जो C को बताता है कि उसके ज़रिए कितने बाइट पढ़ें/लिखें।