Address Operator (&) And Indirection Operator(*) In C
Address Operator (&) And indirection operator(*), पॉइंटर को समझने के लिए सबसे महत्वपूर्ण Concept है क्योकि सी लैंग्वेज में जब हम पॉइंटर का उपयोग करेंगे तो इन दोनों कांसेप्ट का उपयोग होगा |
तो आइये बिना समय गवाए जानते है Address Operator (&) And indirection operator(*) के बारे में |
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)
Read More -:
- Pointer in C In Hindi
- Pointer Arithmetic in C In Hindi
- Pointer to Pointer in C In Hindi
- Pointer to Structure In C In Hindi
- Dangling Pointer in C In Hindi
- Wild Pointer In C In Hindi
- Null Pointer In C In Hindi
- Void Pointer In C In Hindi
- Dynamic Memory Allocation 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 है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |