मैं सी के माध्यम से पढ़ रहा हूँ द्वारा कब्जा this book के 3 अध्याय में लैम्ब्डा अनुभाग ++ और निम्नलिखित कोड मुझे confuses:C++ लैम्ब्डा मूल्य
int x = 0;
int y = 42;
auto qqq = [x, &y] {
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
++y;
};
x = y = 77;
qqq();
qqq();
std::cout << "final y: " << y << std::endl;
इस कोड को प्रिंट आउट:
x: 0
y: 77
x: 0
y: 78
final y: 79
क्यों QQQ करता है() रजिस्टर नहीं है कि एक्स बदल गया है 77? यह कहा गया था कि मूल्य से गुजरने का मतलब है कि हम पढ़ सकते हैं लेकिन डेटा को पढ़ने योग्य नहीं संशोधित कर सकते हैं जहां लैम्ब्डा परिभाषित किया गया था। क्या इसका मतलब है कि हम इसकी परिभाषा के बाद परिवर्तन नहीं देख सकते हैं?
आप सही हैं, वह पुस्तक बहुत अच्छी व्याख्या नहीं देती है। नीचे दिए गए उत्तर बेहतर काम करते हैं। – jdigital