सी और सी ++ में शून्य * क्या है

Si Aura Si Mem Sun Ya Kya Hai



C और C++ दो प्रोग्रामिंग लैंग्वेज हैं जो मेमोरी मैनेजमेंट और डेटा मैनीपुलेशन के लिए पॉइंटर्स पर बहुत अधिक निर्भर करती हैं। पॉइंटर वेरिएबल होते हैं जो मेमोरी एड्रेस को स्टोर करते हैं, जो प्रोग्राम को मेमोरी में संग्रहीत डेटा तक पहुंचने और हेरफेर करने की अनुमति देते हैं। एक विशेष प्रकार का सूचक है शून्य सूचक (शून्य *) , के रूप में भी जाना जाता है सामान्य सूचक .

एक शून्य सूचक (शून्य*) क्या है?

एक शून्य सूचक, जिसे एक सामान्य सूचक के रूप में भी जाना जाता है, एक सूचक है जो किसी विशिष्ट डेटा प्रकार से संबद्ध नहीं है, जो इसे किसी भी प्रकार के डेटा को इंगित करने के लिए उपयुक्त बनाता है। दूसरे शब्दों में, ए शून्य सूचक एक पूर्णांक, एक वर्ण, एक स्ट्रिंग या किसी अन्य डेटा प्रकार को इंगित कर सकता है। यह लचीलापन सी और सी ++ प्रोग्रामिंग में शून्य पॉइंटर्स को एक शक्तिशाली टूल बनाता है।

सी और सी ++ में शून्य सूचक की घोषणा

सी और सी ++ में, शून्य सूचक निम्नलिखित सिंटैक्स के माध्यम से घोषित किया गया है:







खालीपन * पीटीआर ;

सी और सी ++ में शून्य पॉइंटर्स का उपयोग

शून्य संकेत सी में ज्यादातर तब उपयोग किया जाता है जब एक चर का डेटा प्रकार ज्ञात नहीं होता है या रनटाइम पर भिन्न हो सकता है। वे इसके विशिष्ट डेटा प्रकार को जानने की आवश्यकता के बिना डेटा को संग्रहीत और हेरफेर करने के लिए एक सामान्य तरीके की अनुमति देते हैं। यह विशेष रूप से उन कार्यों या डेटा संरचनाओं से निपटने में सहायक होता है जो विभिन्न प्रकार के डेटा को संभाल सकते हैं।



का एक सामान्य उपयोग शून्य संकेत स्मृति आवंटन कार्यों में है जैसे मॉलोक () जो किसी भी प्रकार के डेटा को स्टोर करने के लिए उपयोग किए जा सकने वाले मेमोरी के ब्लॉक में एक शून्य सूचक बिंदु लौटाता है। प्रोग्रामर तब आवंटित मेमोरी ब्लॉक में संग्रहीत डेटा तक पहुंचने और हेरफेर करने के लिए शून्य सूचक को उपयुक्त डेटा प्रकार में डाल सकता है।



C में void पॉइंटर्स का एक अन्य उपयोग in है फ़ंक्शन पॉइंटर्स , जो वेरिएबल्स हैं जो किसी फ़ंक्शन के मेमोरी एड्रेस को स्टोर करते हैं। फ़ंक्शन पॉइंटर उपयोग में अधिक लचीलेपन की अनुमति देते हुए, इसके रिटर्न प्रकार या पैरामीटर सूची की परवाह किए बिना, किसी भी फ़ंक्शन के मेमोरी एड्रेस को स्टोर करने के लिए शून्य पॉइंटर्स का उपयोग किया जा सकता है।





का उपयोग शून्य संकेत सी ++ में लगभग समान है, हालांकि, उनका उपयोग विभिन्न वर्गों की वस्तुओं के लिए एक सामान्य इंटरफ़ेस बनाने के लिए भी किया जा सकता है। यह अक्सर आभासी कार्यों के उपयोग के माध्यम से प्राप्त किया जाता है, जो विभिन्न वर्गों की वस्तुओं को समान रूप से व्यवहार करने की अनुमति देता है। इसके अलावा, सी ++ सी की तुलना में अधिक सख्त प्रकार की जांच प्रदान करता है, जिसका अर्थ है कि उपयोग करना शून्य संकेत गलत तरीके से अधिक त्रुटियाँ और बग हो सकते हैं।

सी और सी ++ में शून्य पॉइंटर्स का उपयोग करते समय विचार करने के लिए अंक

यहां कुछ बिंदु दिए गए हैं जिनका उपयोग करते समय आपको विचार करना चाहिए शून्य संकेत सी और सी ++ में।



1: सी में, खालीपन* रिटर्न वैल्यू और फंक्शन पैरामीटर के रूप में इस्तेमाल किया जा सकता है लेकिन C ++ में आपके पास एक विशिष्ट डेटा प्रकार का पॉइंटर होना चाहिए।

उदाहरण के लिए:

सी में, कोड नीचे दिया गया है:

#शामिल

#शामिल

खालीपन * add_numbers ( int यहाँ , int यहाँ बी ) {

int यहाँ * परिणाम = malloc ( का आकार ( int यहाँ ) ) ;

* परिणाम = + बी ;

वापस करना ( खालीपन * ) परिणाम ;

}

खालीपन print_result ( खालीपन * परिणाम ) {

int यहाँ * पीटीआर = ( int यहाँ * ) परिणाम ;

printf ( 'परिणाम है: %d \एन ' , * पीटीआर ) ;

मुक्त ( पीटीआर ) ;

}

int यहाँ मुख्य ( ) {

int यहाँ संख्या 1 = 5 , num2 = 7 ;

खालीपन * परिणाम = add_numbers ( संख्या 1 , num2 ) ;

print_result ( परिणाम ) ;

वापस करना 0 ;

}

उपरोक्त कोड एक फ़ंक्शन को परिभाषित करता है add_numbers () जो एक लौटाता है खालीपन* तर्क के रूप में पारित दो पूर्णांकों को जोड़ने के परिणाम के लिए सूचक। कार्यक्रम print_result () लिया जाता है एक शून्य * सूचक और परिणाम प्रिंट करता है। मुख्य () फ़ंक्शन में, हम कॉल करते हैं add_numbers () और परिणाम पास करें शून्य * सूचक को print_result () छपाई के लिए।

C++ में, एक विशिष्ट डेटा प्रकार की आवश्यकता होती है।

#शामिल

नेमस्पेस एसटीडी का उपयोग करना ;

खालीपन प्रिंटइंट ( int यहाँ * एक पर ) {

अदालत << 'पूर्णांक है:' << * एक पर << endl ;

}

int यहाँ मुख्य ( ) {

int यहाँ एक्स = 10 ;

int यहाँ * पीटीआर = और एक्स ;

प्रिंटइंट ( पीटीआर ) ;

वापस करना 0 ;

}

2: C में, आप void पॉइंटर को दूसरे पॉइंटर टाइप के माध्यम से कन्वर्ट कर सकते हैं निहित रूपांतरण। लेकिन C++ में आपको स्पष्ट रूपांतरण परिवर्तित करने के लिए शून्य सूचक किसी अन्य सूचक प्रकार के लिए।

यहाँ C और C++ दोनों के बीच के अंतर को दर्शाने के लिए एक सरल कोड उदाहरण दिया गया है अंतर्निहित और स्पष्ट रूपांतरण का शून्य संकेत अन्य सूचक प्रकारों के लिए:

C में, निम्नलिखित कोड का उपयोग किया जाता है:

#शामिल

खालीपन printChar ( खालीपन * चौधरी ) {

चार सी = * ( चार * ) चौधरी ;

printf ( '%सी \एन ' , सी ) ;

}

int यहाँ मुख्य ( ) {

चार सी = 'ए' ;

खालीपन * पीटीआर = और सी ;

printChar ( पीटीआर ) ;

वापस करना 0 ;

}

उपरोक्त कोड एक फ़ंक्शन को परिभाषित करता है printChar जो एक शून्य सूचक को एक पैरामीटर के रूप में लेता है और उस स्मृति स्थान पर संग्रहीत वर्ण को प्रिंट करता है। मुख्य कार्य में, एक चार चर सी परिभाषित किया गया है और इसका पता शून्य सूचक में संग्रहीत है पीटीआर। printChar फ़ंक्शन को तब के साथ बुलाया जाता है शून्य सूचक 'पीटीआर' एक तर्क के रूप में। शून्य सूचक स्पष्ट रूप से चार सूचक में परिवर्तित हो जाता है 'प्रिंटचार' में संग्रहीत मूल्य तक पहुँचने और प्रिंट करने का कार्य 'सी' .

C++ में, कोड नीचे दिया गया है:

#शामिल

खालीपन प्रिंटइंट ( खालीपन * एक पर ) {

int यहाँ * पीटीआर = static_cast < int यहाँ *> ( एक पर ) ;

कक्षा :: अदालत << * पीटीआर << कक्षा :: endl ;

}

int यहाँ मुख्य ( ) {

int यहाँ एक्स = 10 ;

खालीपन * पीटीआर = और एक्स ;

प्रिंटइंट ( पीटीआर ) ;

वापस करना 0 ;

}

उपरोक्त कोड एक फ़ंक्शन को परिभाषित करता है प्रिंटइंट जो एक शून्य सूचक संख्या को एक पैरामीटर के रूप में लेता है और इसका उपयोग करके एक पूर्णांक सूचक में डालता है स्टेटिक_कास्ट ऑपरेटर . फ़ंक्शन तब कास्टेड पॉइंटर द्वारा इंगित पूर्णांक के मान को प्रिंट करता है। मुख्य कार्य में, एक पूर्णांक चर x परिभाषित किया गया है और इसका पता a में संग्रहीत है शून्य सूचक पीआरटी, जिसे बाद में पास कर दिया जाता है प्रिंटइंट समारोह। प्रोग्राम का आउटपुट x का मान है, जो 10 है।

अंतिम विचार

खालीपन C और C++ में संकेत डेटा के विशिष्ट डेटा प्रकार को जानने की आवश्यकता के बिना डेटा में हेरफेर करने का एक शक्तिशाली तरीका प्रदान करते हैं। वे स्मृति आवंटन और फ़ंक्शन पॉइंटर्स के साथ-साथ सी ++ में विभिन्न वर्गों की वस्तुओं के लिए एक सामान्य इंटरफ़ेस बनाने के लिए उपयोगी होते हैं। हालाँकि, उनके उपयोग में C और C ++ के बीच के अंतरों पर विचार करना महत्वपूर्ण है शून्य संकेत , जैसे कि सी ++ में विशिष्ट डेटा प्रकारों की आवश्यकता और शून्य पॉइंटर्स को अन्य पॉइंटर प्रकारों में कास्ट करते समय स्पष्ट रूपांतरण की आवश्यकता। इन बिंदुओं पर सावधानीपूर्वक विचार करने से इसका अधिक कुशल और प्रभावी उपयोग हो सकता है शून्य संकेत प्रोग्रामिंग में।