Address Operator (&) And Indirection Operator(*) In C

Address Operator (&) And indirection operator(*), पॉइंटर को समझने के लिए सबसे महत्वपूर्ण Concept है क्योकि सी लैंग्वेज में जब हम पॉइंटर का उपयोग करेंगे तो इन दोनों कांसेप्ट का उपयोग होगा | 

तो आइये बिना समय गवाए जानते है Address Operator (&) And indirection operator(*) के बारे में | 

Address Operator And Indirection Operator In C

Address Operator (&) In C

सी लैंग्वेज में जब हम कोई वेरिएबल डिक्लेअर करते है तब उस वेरिएबल को देख कर हम ये तीन चीजे आसानी से बता सकते है – वेरिएबल का नाम, वेरिएबल में किस टाइप की वैल्यू स्टोर होगी और वेरिएबल में कितने साइज की वैल्यू स्टोर होगी | मगर एक और चीज है जो वेरिएबल को मेमोरी में मिलता है और वो है मेमोरी एड्रेस | 

जिस स्थान पर वैरिएबल को मेमोरी मिलता है उस स्थान का एक एड्रेस होता है जिसे मेमोरी एड्रेस कहते है | वेरिएबल को मिलने वाला मेमोरी एड्रेस हमारे हाथ में नहीं होता ये सिस्टम decide करता है | 

यदि हमे किसी वेरिएबल का मेमोरी एड्रेस पता करना है तो इसके लिए हमे address ऑपरेटर (&) का उपयोग करना पड़ेगा | 

Address (&) एक ऐसा ऑपरेटर होता है जो वेरिएबल का एड्रेस प्रदान करता है | यह एक unary ऑपरेटर है जो केवल एक ओपेरंड पर कार्य करता है | ये जो ऑपरेंड होता है वो वेरिएबल name ही हो सकता है इसका उपयोग हम कांस्टेंट वैल्यू के साथ नहीं कर सकते | 

Address Operator (&) द्वारा प्रदान किये गए वेरिएबल एड्रेस के द्वारा हम उस वेरिएबल को आसानी से पहचान सकते है | Address Operator (&) को referencing ऑपरेटर भी कहा जाता है |

Syntax -:

&variable_name;

Example -:

#include<stdio.h>
void main()
{
  int x = 5;
  printf(" %d \n ", x );
  printf("%d \n", &x);
)

इस उदाहरण में हमने int x = 5; करके x नाम से एक वेरिएबल डिक्लेअर किया और डिक्लेरेशन के समय ही 5 को उस वेरिएबल में असाइन भी कर दिया | इसके बाद हमने printf() फंक्शन की मदद से सबसे पहले x की वैल्यू प्रिंट कराया उसके बाद x वेरिएबल को जिस स्थान पर मेमोरी मिला है उस स्थान का मेमोरी एड्रेस प्रिंट कराया जिसका आउटपुट कुछ ऐसा आया |

Output -:

5
200071

Asterisk (*) or Indirection Operator In C

asterisk (*) एक ऐसा ऑपरेटर होता है जो किसी वेरिएबल एड्रेस में स्टोर वैल्यू को प्रदान करता है | यह एक unary ऑपरेटर है जो केवल एक ओपेरंड पर कार्य करता है  Indirection operator (*) वेरिएबल के एड्रेस को आर्गुमेंट के रूप में लेता है | इसे dereferencing operator भी कहते है | 

Syntax -:

*&variable_name;

Example -:

#include<stdio.h>
void main()
{
int x =5; 
int y = *&x;
printf(" y = %d ", y);
}

इस उदाहरण में हमने int x = 5; करके x नाम से एक वेरिएबल डिक्लेअर किया और डिक्लेरेशन के समय ही 5 को उस वेरिएबल में असाइन भी कर दिया | इसके बाद हमने एक और int वेरिएबल बने जिसका नाम y रखा और इस y वेरिएबल में *&x; करके x वेरिएबल के एड्रेस में जो भी वैल्यू है उसको y वेरिएबल में असाइन किया | यहाँ पर  * x वेरिएबल के एड्रेस में स्टोर वैल्यू को रिटर्न करता है | 

हमने printf() फंक्शन की मदद से सबसे पहले y वेरिएबल को असाइन करके वैल्यू को स्क्रीन में प्रिंट करा दिया जिसका आउटपुट कुछ ऐसा आया  | 

Output -: y = 5

आइये Address Operator (&) और indirection operator को अच्छे से समझने के लिए एक और उदाहरण देखते है -:

Example of Address Operator (&) And indirection Operator

#include<stdio.h>
void main()
{
  int x = 5;
  printf(" %d \n ", x );
  printf("%d \n", &x);
  printf(" %d " *&x);
}

Output -:

5
2048
5

इस उदाहरण में हमने x नाम से एक वेरिएबल बनाया और उसमे 5 को असाइन कर दिया इसके बाद पहले वाले printf() की मदद से हमने x वेरिएबल में स्टोर वैल्यू को प्रिंट किया और दूसरे वाले printf() की मदद से x वैरिएबल के एड्रेस को स्क्रीन में प्रिंट कराया | 

तीसरे printf में हमने indirection operator (*) में *&x करके x वेरिएबल के एड्रेस को आर्गुमेंट के रूप में पास किया और जैसे की हमे पता है कि indirection operator (*) में जब किसी वेरिएबल का एड्रेस पास करते है तो indirection operator (*) उस वेरिएबल एड्रेस में स्टोर वैल्यू को लौटा देता है इसलिए तीसरे प्रिंटफ की मदद से हमे 5 वैल्यू आउटपुट के रूप में प्राप्त हुवा |  

दोस्तों अब आपको अच्छी तरह से समझ आ गया होगा कि Address Operator (&) And indirection operator(*) क्या है और इसका उपयोग सी लैंग्वेज में कैसे करते है |  

Address Operator (&) And indirection operator(*) का सबसे ज्यादा उपयोग पॉइंटर के साथ होता है तो इसके बाद अब आपको पॉइंटर के बारे में पढ़ना चाहिए | 

पॉइंटर के बारे में आप यहाँ से पढ़ सकते है -: पॉइंटर क्या है? (What is Pointer in C in Hindi)

Conclusion 

दोस्तों आशा करता हु कि आज के इस आर्टिकल को पढ़ने के बाद आप सभी को जानकारी मिल गई होगी कि  Address Operator (&) And indirection operator(*) क्या है? 

अगर आप सी लैंग्वेज का Complete Tutorial चाहते है तो मेरे इस पोस्ट C Language Tutorial In Hindi को देखे यहाँ आपको C Programming Language के सभी टॉपिक्स step by step मिल जाएगी

दोस्तों आशा करता हु कि आपको ये पोस्ट पसंद आई होगी और आपको Address Operator (&) And indirection operator(*) Hindi) के बारे में काफी जानकरी हुई होगी |

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी ये जानकारी प्राप्त हो सके |

अगर आपको अभी भी Address Operator (&) And indirection operator(*) से संबंधित कोई भी प्रश्न या Doubt है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging

Ads Blocker Image Powered by Code Help Pro
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Refresh
Powered By
CHP Adblock Detector Plugin | Codehelppro