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

C++ में Lvalues और Rvalues क्या हैं?


एक lvalue (लोकेटर वैल्यू) एक ऑब्जेक्ट को दर्शाता है जो मेमोरी में कुछ पहचान योग्य स्थान घेरता है (यानी उसका एक एड्रेस होता है)।

rvalues को अपवर्जन द्वारा परिभाषित किया जाता है। प्रत्येक एक्सप्रेशन या तो lvalue होता है या rvalue, इसलिए, एक rvalue एक ऐसा एक्सप्रेशन है जो मेमोरी में कुछ पहचान योग्य स्थान घेरने वाले ऑब्जेक्ट को दर्शाता नहीं है।

उदाहरण के लिए, एक असाइनमेंट अपने बाएं ऑपरेंड के रूप में lvalue की अपेक्षा करता है, इसलिए निम्न वैध है –

int i = 10;

लेकिन यह नहीं:

int i; 10 = i;

ऐसा इसलिए है क्योंकि i का मेमोरी में एक एड्रेस है और यह एक lvalue है। जबकि 10 की कोई पहचान योग्य मेमोरी लोकेशन नहीं है और इसलिए यह एक rvalue है। इसलिए i के मान को 10 को असाइन करना कोई मतलब नहीं रखता।

  1. - C++ में cin, cout और cerr स्ट्रीम्स क्या हैं?

    cin, cout, cerr, और clog वे स्ट्रीम्स हैं जो स्टैंडर्ड इनपुट और स्टैंडर्ड आउटपुट को संभालते हैं। ये iostream हेडर फ़ाइल में परिभाषित स्ट्रीम ऑब्जेक्ट्स हैं। std::cin istream क्लास का एक ऑब्जेक्ट है जो संकीर्ण वर्णों (प्रकार char) के लिए उन्मुख स्टैंडर्ड इनपुट स्ट्रीम को दर्शाता है। यह C स्ट्रीम std

  1. - C++ में साइन्ड और अनसाइन्ड कीवर्ड्स

    C++ में सभी नंबर टाइप्स या तो साइन वाले हो सकते हैं या नहीं। उदाहरण के लिए, आप एक int घोषित कर सकते हैं जो केवल पॉजिटिव इंटीजर्स को दर्शाता है। जब तक अन्यथा निर्दिष्ट न हो, सभी इंटीजर डेटा टाइप्स साइन्ड डेटा टाइप्स होते हैं, यानी उनके मान पॉजिटिव या नेगेटिव हो सकते हैं। अनसाइन्ड कीवर्ड का उपयोग बिना

  1. - C# में rvalue और lvalue क्या हैं?

    C# में अभिव्यक्तियों के निम्नलिखित प्रकार हैं:lvalue - एक अभिव्यक्ति जो एक lvalue है, असाइनमेंट के बाएं या दाएं हाथ की ओर दिखाई दे सकती है।rvalue - एक अभिव्यक्ति जो एक rvalue है, असाइनमेंट के दाएं हाथ की ओर दिखाई दे सकती है लेकिन बाएं हाथ की ओर नहीं।वेरिएबल्स lvalues हैं और इसलिए वे असाइनमेंट के बाए