Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ टर्नरी ऑपरेटर के बारे में कुछ रोचक अवलोकन

हम जानते हैं कि टर्नरी ऑपरेटर if..else क्लॉज के बजाय लागू किया जाता है। इसे ?: द्वारा दर्शाया जाता है। '?' सिंबल if भाग के बराबर है और ':' else भाग के बराबर है। निम्नलिखित 3 प्रोग्राम टर्नरी ऑपरेटर के मामले में कुछ रोचक अवलोकन बताते हैं।

निम्नलिखित प्रोग्राम बिना किसी त्रुटि के कंपाइल हो जाता है। टर्नरी एक्सप्रेशन का रिटर्न टाइप float होने की उम्मीद है (exp2 के रूप में) और exp3 (यानी लिटरल जीरो - int टाइप) implicit रूप से float में परिवर्तित हो जाता है।

#include 
using namespace std;
int main(){
    int test1 = 0;
    float fvalue = 3.111f;
    cout<< (test1 ? fvalue : 0) << endl;
    return 0;
}

निम्नलिखित प्रोग्राम कंपाइल नहीं हो पाएगा, कारण यह है कि कंपाइलर टर्नरी एक्सप्रेशन के रिटर्न टाइप का पता लगाने में सक्षम नहीं है या exp2 (कैरेक्टर एरे) और exp3 (int) के बीच इम्प्लिसिट रूपांतरण उपलब्ध नहीं है।

#include 
using namespace std;
int main(){
    int test1 = 0;
    cout<< test1 ? "A String" : 0 << endl;
    return 0;
}

निम्नलिखित प्रोग्राम कंपाइल हो सकता है, लेकिन रनटाइम पर विफल होता है। टर्नरी एक्सप्रेशन का रिटर्न टाइप (char *) टाइप तक सीमित है, फिर भी एक्सप्रेशन int लौटाती है, इसलिए प्रोग्राम विफल होता है। लिटरल में, प्रोग्राम एक्जीक्यूशन टाइम या रनटाइम पर 0th एड्रेस पर स्ट्रिंग प्रिंट करने की कोशिश करता है।

#include 
using namespace std;
int main(){
    int test1 = 0;
    cout << (test1 ? "A String" : 0) << endl;
    return 0;
}

हम देख सकते हैं कि exp2 को आउटपुट टाइप माना जाता है और exp3 एक्जीक्यूशन टाइम या रनटाइम पर exp2 में परिवर्तित हो सकेगा। यदि रूपांतरण इम्प्लिसिट माना जाता है तो कंपाइलर रूपांतरण के लिए स्टब्स डालता है। यदि रूपांतरण एक्सप्लिसिट माना जाता है तो कंपाइलर एरर फेंकता है। यदि कोई कंपाइलर ऐसी त्रुटि को पकड़ने से चूक जाता है, तो प्रोग्राम एक्जीक्यूशन टाइम या रनटाइम पर विफल हो सकता है।

  1. - C/C++ में कॉमा ऑपरेटर

    कॉमा ऑपरेटर का उद्देश्य कई अभिव्यक्तियों को एक साथ जोड़ना है। कॉमा से अलग अभिव्यक्तियों की सूची का मान सबसे दाईं अभिव्यक्ति का मान है। अनिवार्य रूप से, कॉमा का प्रभाव ऑपरेशन के अनुक्रम को निष्पादित करना है। अन्य अभिव्यक्तियों के मान त्याग दिए जाएंगे। इसका मतलब है कि दाईं ओर की अभिव्यक्ति पूरे कॉमा-

  1. - C/C++ में '?' ऑपरेटर क्या करता है?

    ऑपरेटर ? को टर्नरी ऑपरेटर के रूप में जाना जाता है क्योंकि इसे कार्य करने के लिए तीन ऑपरेंड्स की आवश्यकता होती है। इसे ?: द्वारा दर्शाया जा सकता है। इसे कंडीशनल ऑपरेटर के रूप में भी जाना जाता है। यह ऑपरेटर प्रदर्शन में सुधार करता है और कोड की लाइनों को कम करता है। C में सिंटैक्स Expression1 ? Expres

  1. - C/C++ में टर्नरी ऑपरेटर्स (Ternary Operators)

    टर्नरी ऑपरेटर क्या है? तीन ऑपरेंड्स पर कार्य करने वाला ऑपरेटर। ? : द्वारा दर्शाया जाता है। सशर्त ऑपरेटर (conditional operator) भी कहलाता है। प्रदर्शन सुधारता है और कोड लाइनें कम करता है। सिंटैक्स Expression1 ? Expression2 : Expression3 कार्यविधि Expression1 हमेशा मूल्यांकित होता है यदि Expressio