कंडिशनल ऑपरेटर: सी बनाम सी अंतर को विच्छेदित करना
प्रोग्रामिंग के दायरे में, कंडीशनल ऑपरेटर (?:) एक के रूप में कार्य करता है किसी अभिव्यक्ति का मूल्यांकन करने और परिणाम के आधार पर एक विशिष्ट मान लौटाने का संक्षिप्त तरीका। हालाँकि यह ऑपरेटर C और C दोनों में समान रूप से काम करता है, लेकिन एक सूक्ष्म अंतर उभरता है जो कोड निष्पादन को प्रभावित कर सकता है।
C: Lvalues पर प्रतिबंध
C में, सशर्त ऑपरेटर रिटर्निंग लैवल्यू पर प्रतिबंध लगाता है (वैरिएबल जो एक विशिष्ट मेमोरी पते पर रहते हैं)। इसका मतलब यह है कि निम्नलिखित जैसे भाव C में संकलित होने में विफल रहेंगे:
(true ? a : b) = 1;
C : Empowering Lvalue Returns
इसके विपरीत, सी सशर्त ऑपरेटर को अंतराल वापस करने की क्षमता प्रदान करता है। यह लचीलापन उपरोक्त जैसी अभिव्यक्तियों को C में निर्बाध रूप से निष्पादित करने की अनुमति देता है:
(true ? a : b) = 1;
C में समान कार्यक्षमता प्राप्त करने के लिए, प्रोग्रामर को वैकल्पिक तकनीकों को नियोजित करना चाहिए मानो/अन्यथा कथन या संदर्भों का प्रत्यक्ष हेरफेर:
*(true ? &a : &b) = 1;
प्राथमिकता और समूहीकरण
अन्य C और C में ?: ऑपरेटर के बीच अंतर इसकी प्राथमिकता और समूहन से संबंधित है। सी में, ?: ऑपरेटर और असाइनमेंट ऑपरेटर (=) के पास दाएं से बाएं ओर समान प्राथमिकता और समूह है। इसका तात्पर्य यह है कि निम्नलिखित कोड C में मान्य है:
(true ? a = 1 : b = 2);
हालाँकि, C में, असाइनमेंट ऑपरेटर की प्राथमिकता अधिक होती है, जिससे चारों ओर कोष्ठक की आवश्यकता होती है अंतिम अभिव्यक्ति:
(true ? a = 1 : (b = 2));
C में कोष्ठक का उपयोग करने में विफलता के परिणामस्वरूप एक संकलन त्रुटि होगी।
निष्कर्ष
हालांकि सशर्त ऑपरेटर सीधा दिखाई दे सकता है, सी और सी में इसके व्यवहार के बीच सूक्ष्म अंतर प्रोग्राम निष्पादन को प्रभावित कर सकता है। कोड पोर्टेबिलिटी सुनिश्चित करने और अप्रत्याशित त्रुटियों को रोकने के लिए इन अंतरों को समझना महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3