"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप C++ में एक स्ट्रिंग के रूप में किसी वेरिएबल के नाम का उपयोग करके उसके मान तक कैसे पहुंच सकते हैं?

आप C++ में एक स्ट्रिंग के रूप में किसी वेरिएबल के नाम का उपयोग करके उसके मान तक कैसे पहुंच सकते हैं?

2024-11-27 को प्रकाशित
ब्राउज़ करें:393

How Can You Access a Variable\'s Value Using its Name as a String in C  ?

सी में वेरिएबल नाम का प्रतिनिधित्व करने वाली स्ट्रिंग से वेरिएबल वैल्यू तक पहुंचना

सी में, इसका उपयोग करके गतिशील रूप से एक वेरिएबल का मान प्राप्त करना संभव है एक स्ट्रिंग के रूप में नाम. यह तकनीक, जिसे आमतौर पर प्रतिबिंब के रूप में जाना जाता है, लचीली डिबगिंग और आत्मनिरीक्षण क्षमताओं की अनुमति देती है।

इसे प्राप्त करने के लिए, आप निम्नलिखित चरणों का उपयोग कर सकते हैं:

  1. चर प्राप्त करें पता:

    • वेरिएबल का पता पुनः प्राप्त करने के लिए "&" ऑपरेटर को नियोजित करें। उदाहरण के लिए, &counter वह मेमोरी स्थान लौटाता है जहां काउंटर संग्रहीत है।
  2. कास्ट टू पॉइंटर:

    • वेरिएबल कास्ट करें वेरिएबल के प्रकार के सूचक को पता। यह आपको अप्रत्यक्ष रूप से वेरिएबल के मान तक पहुंचने की अनुमति देता है। उदाहरण के लिए: int* काउंटरPtr = static_cast(&counter);
  3. पॉइंटर के माध्यम से एक्सेस वैल्यू:

    • पॉइंटर के माध्यम से वेरिएबल के मान तक पहुंचने के लिए डेरेफ़रेंस ऑपरेटर (*) का उपयोग करें। उदाहरण के लिए: std::cout
  4. टेम्पलेट टी वैल्यूऑफ(स्थिरांक std::string& varName) { टी* varPtr = static_cast(std::addressof(varName)); वापसी *varPtr; }
    • उपयोग:

      template 
      T valueOf(const std::string& varName) {
        T* varPtr = static_cast(std::addressof(varName));
        return *varPtr;
      }
    • std::cout ("काउंटर")
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3