# पॉइंटर के मूल तत्व — C प्रोग्रामिंग

Source: https://www.geekswithgeeks.com/hi/c/c-pointers-basics

> एक वेरिएबल जो मेमोरी एड्रेस स्टोर करता है।

## पॉइंटर एक घर का पता है

सामान्य वेरिएबल एक ऐसा घर है जिसमें मान रखा है। **पॉइंटर** एक कागज़ का टुकड़ा है जिस पर उस घर का **पता** लिखा है — घर खुद नहीं।

## & और * — एड्रेस-ऑफ और डीरेफ़रेंस

`&x` से `x` का एड्रेस मिलता है। `*p` उस एड्रेस पर मौजूद मान पढ़ता (या लिखता) है जो `p` में है।

```c
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 को बताता है कि उसके ज़रिए कितने बाइट पढ़ें/लिखें।
