Understanding lvalues and rvalues C++ In Hindi
सी++ प्रोग्रामिंग लैंग्वेज में, lvalues और rvalues मौजूदा प्रोग्राम में सी++ यूजर को मल्टीप्ल इंडिविजुअल प्रकार के एक्सप्रेशन क्रिएट करने में हेल्प करते हैं। सी++ डेवलपर को किसी प्रोग्राम के रेफरेंस, असाइनमेंट, मूव सिमेंटिक्स, और मॉडर्न C++ प्रोग्रामिंग कांसेप्ट यूज़ के लिए lvalues और rvalues बिहैवियर को समझना बहुत ज़रूरी होता है।

What is an lvalue in C++ programming?
सी++ प्रोग्रामिंग में lvalue एक यूजर डिफाइन कस्टम प्रोग्राम एक्सप्रेशन वैल्यू है, जो प्रोग्राम में किसी आइडेंटिफायर ऑब्जेक्ट को रेफर करता है, जिसकी स्टोरेज मेमोरी में एक परसिस्टेंट स्टोरेज लोकेशन होती है। क्योंकि यह आपके डिक्लेअर किसी प्रोग्राम ऑब्जेक्ट को लोकेट करता है, इस वजह से lvalue सामान्य रूप से असाइनमेंट के लेफ्ट साइड में डिस्प्ले वैल्यू हो सकता है।
Example of an lvalue in C++.
int p = 7;
p = 4;
यहाँ इस एक्सप्रेशन में, p एक इंट इन्टिजर वेरिएबल lvalue एक्सप्रेशन है, यह आपके सिस्टम के स्टोरेज मेमोरी लोकेशन में किसी स्पेसिफिक ऑब्जेक्ट लोकेशन को रेफर या इंडीकेट करता है।
Example of another lvalue in C++.
int m = 3;
int n = 7;
m;
n;
यहाँ इस एक्सप्रेशन में, इन्टिजर वेरिएबल m और n दोनों एक lvalues वेरिएबल वैल्यू ऑब्जेक्ट एक्सप्रेशन हैं।
An lvalue variable reference in C++.
सी++ प्रोग्राम में lvalue एक्सप्रेशन को & एंड ऐंपरसेंड एड्रेस सिंबल का यूज़ करके डिक्लेअर या स्टोरेज एड्रेस के रूप में इंडीकेट किया जा सकता है.
int p = 6;
int& ref = p;
ref = 9;
यहाँ इस एक्सप्रेशन में, अब p इन्टिजर वेरिएबल की वैल्यू और ref दोनों एक ही ऑब्जेक्ट को इंडीकेट या रेफर करते हैं।
What is an rvalue in C++ programming?
सी++ प्रोग्रामिंग में rvalue सामान्य रूप से एक यूजर डिफाइन कस्टम प्रोग्राम एक्सप्रेशन वैल्यू है, जो मौजूदा प्रोग्राम में एक टेम्पररी वेरिएबल वैल्यू को रिप्रेजेंट करता है. जिसमे एक नेम्ड प्रोग्राम वेरिएबल की तरह कोई परसिस्टेंट आइडेंटिटी नहीं होती है।
Example of an rvalue in C++.
int p = 3;
यहाँ ऊपर दिए गए एक्सप्रेशन में, 3 वैल्यू एक इन्टिजर वेरिएबल rvalue डिक्लेरेशन मेथड है।
Other rvalue examples in C++.
p + 9
7
p * 4
For rvalue examples.
int p = 4;
int q = p + 7;
यहाँ इस एक्सप्रेशन में p + 7 एक टेम्पररी वैल्यू को क्रिएट करता है, इस वजह से यह एक rvalue एक्सप्रेशन है।
सी++ प्रोग्रामिंग में एक rvalue सामान्य रूप से इसे असाइन नहीं किया जा सकता है.
3 = q; // Display syntax expression error
q + 7 = 9; // Display syntax expression error
Major difference between lvalue and rvalue in c++
| Lvalue concept in c++ | Rvalue concept in c++ |
| Lvalue Refers to an identifiable object in user define condition or expression | Rvalue used in any program to visually or usually represents a temporary program value expression |
| Lvalue program object Has a persistent identity or identifier name | Rvalue does not have any persistent identity expression |
| Lvalue program object Can generally appear on the left side of = with equal operator | Rvalue Generally, cannot appear on the left side of with = equal operator |
| Lvalue used to bind or group to lvalue reference object | Rvalue used to bind to or group rvalue reference element |
| Example of lvalue: p | Example of rvalue: 7, p + 3 |
Lvalue Reference in C++ programming.
सी++ प्रोग्रामिंग में एक lvalue reference & एड्रेस सिंबल का यूज़ करके डिजायर डाटा टाइप के साथ डिक्लेयर किया जाता है।
int m = 11;
int& ref = m;
यहाँ इस एक्सप्रेशन में, ref, m का दूसरा एड्रेस रेफरेन्स नाम है।
ref = 33;
cout << m;
Its output.
33
सी++ में एक बेसिक सिंपल नॉन-कॉन्स्ट lvalue रेफरेंस सामान्य रूप से सीधे rvalue से कनेक्ट नहीं कर सकता है.
int& ref = 4; // Display syntax expression error
Rvalue Reference in C++ Programming.
C++11 वर्जन में पहली बार सी++ ने rvalue रेफरेंस को पेश किया है, जिन्हें मौजूदा प्रोग्राम में && एड्रेस सिंबल से रिप्रेजेंट या डिस्प्ले किया जाता है।
int&& ref = 8;
यहाँ इस एक्सप्रेशन में, ref एक rvalue रेफरेंस एड्रेस लोकेशन एरिया है।
सी++ प्रोग्राम में Rvalue रेफरेंस मूव सिमेंटिक्स फीचर के लिए एक इम्पोर्टेन्ट एलिमेंट हैं, क्योंकि ये टेम्पररी प्रोग्राम ऑब्जेक्ट्स से रिसोर्स को बिना ज़रूरत के कॉपी करने के बदले ट्रांसफर करने देते हैं।
Example of an Rvalue reference.
int&& p = 77;
cout << p;
Its output.
77
Example of lvalues and rvalues with functions.
सी++ यूजर इसे इस एक्साम्प्ल से बेहतर समझ सकते है.
#include <iostream>
using namespace std;
void preview(int& p)
{
cout << “this is a lvalue reference” << endl;
}
void preview(int&& p)
{
cout << “this is a rvalue reference” << endl;
}
int main()
{
int q = 3;
preview(q);
preview(7);
return 0;
}
Its output.
this is a lvalue reference
this is a rvalue reference
Why?, Here in this expression.
- q एक lvalue वेरिएबल वैल्यू डिक्लेरेशन है, इस वजह से preview(int&) को सलेक्ट किया गया है।
- q में 7 एक rvalue रेफ़्रेन्स ऑब्जेक्ट है, इस वजह से display(int&&) को सलेक्ट किया गया है।
std::move() method in C++ programming.
किसी सी++ प्रोग्राम में std::move() फंक्शन मेथड का यूज़ सामान्य रूप से rvalue रेफरेन्स के लिए किया जाता है।
#include <iostream>
#include <utility>
using namespace std;
int main()
{
string text1 = “Welcome to Vcanhelpsu Edtech”;
string text2 = std::move(text1);
cout << text2;
}
Its output.
Welcome to Vcanhelpsu Edtech
यहाँ इस एक्साम्प्ल में std::move() फंक्शन अपने डेटा को मूव नहीं करता है। यह एक प्रोग्राम एक्सप्रेशन को कास्ट करता है, जिससे कि इसे rvalue के रूप में ट्रीट किया जा सके, जिससे इनके मूव डाटा वैल्यू ऑपरेशन को सलेक्ट किया जा सके।
std::move() फंक्शन स्पेशली रूप से उन ऑब्जेक्ट के साथ यूज़ किया जाता है, जो किसी प्रोग्राम में डायनामिक आर्डर में एलोकेट की गई वेरिएबल मेमोरी जैसे रिसोर्स को हैंडल या मैनेज करते हैं।
How to remember lvalue and rvalue in the C++ programming.
सी++ प्रोग्रामिंग में, lvalues और rvalues वैल्यू रेफ़्रेन्स में कुछ यूजर डिफाइन पर्टिकुलर कंडीशन एक्सप्रेशन को इस तरह से समझ सकते है.
int p = 7;
- p → lvalue → यह एक आइडेंटिफ़ाएबल वेरिएबल ऑब्जेक्ट/लोकेशन है।
- 7 → rvalue → यह एक आइडेंटिफायर वैल्यू/टेम्पररी एक्सप्रेशन वैल्यू है।
Another example of lvalues and rvalues in C++.
int p = 7;
int q = p + 4;
- p → lvalue expression indication
- q → lvalue expression indication
- 7 → rvalue expression indication
- 4 → rvalue expression indication
- p + 4 → rvalue expression indication
Lvalues and rvalues short for C++.
सी++ प्रोग्रामिंग में lvalue = किसी प्रोग्राम में एक आइडेंटिफ़ाएबल आइडेंटिफायर ऑब्जेक्ट वाला एक यूजर डिफाइन कस्टम एक्सप्रेशन है.
rvalue = किसी सी++ प्रोग्राम में एक यूजर डिफाइन एक्सप्रेशन है, जो सामान्य रूप से एक टेम्पररी वैल्यू एक्सप्रेशन को रिप्रेजेंट करता है
C++ प्रोग्राम में ऑब्जेक्ट रेफरेंस, मूव कंस्ट्रक्टर, मूव असाइनमेंट और परफेक्ट फॉरवर्डिंग कांसेप्ट को समझने या सीखते समय इसे आपको जानना बहुत ज़रूरी हो जाता है।

