पाठ 20 / 38
पॉइंटर के मूल तत्व
Pointers को ऐसे variables के रूप में सीखें जो memory addresses रखते हैं, address-of और dereference operators के साथ।
पॉइंटर एक घर का पता है
सामान्य वेरिएबल एक ऐसा घर है जिसमें मान रखा है। पॉइंटर एक कागज़ का टुकड़ा है जिस पर उस घर का पता लिखा है — घर खुद नहीं।
& और * — एड्रेस-ऑफ और डीरेफ़रेंस
&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 को बताता है कि उसके ज़रिए कितने बाइट पढ़ें/लिखें।