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

C/C++ पॉइंटर्स बनाम जावा रेफरेंसेस

पॉइंटर्स

C, C++ प्रोग्रामिंग भाषाओं में, एक पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता रखता है।

उदाहरण

#include <iostream>
using namespace std;

int main() {
    // int वेरिएबल
    int i = 8;
    // पॉइंटर वेरिएबल
    int * pI;
    // i का पता उसके पॉइंटर को असाइन करें
    pI = &i;
    // संख्या प्रिंट करें
    cout << i << endl;
    // संख्या का पता प्रिंट करें
    cout << pI << endl;
    // पॉइंटर द्वारा इंगित मान प्रिंट करें
    cout << *pI << endl;
    // इसके पॉइंटर का उपयोग करके वेरिएबल का मान बदलें
    *pI = 10;
    // संख्या प्रिंट करें
    cout << i << endl;
}

आउटपुट

8
0x7fee1ae7bc94
8
10

रेफरेंसेस

जावा प्रोग्रामिंग भाषा में, एक रेफरेंस एक वेरिएबल है जो एक ऑब्जेक्ट को संदर्भित करता है और जिसका उपयोग करके हम ऑब्जेक्ट के गुणों और फ़ंक्शंस का उपयोग कर सकते हैं।

उदाहरण

public class Tester {
    public static void main(String[] args) {
        Student student = new Student();
        student.setName("Mahesh");
        System.out.println(student.getName());
    }
}

class Student {
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

आउटपुट

Mahesh

पॉइंटर्स और रेफरेंसेस के बीच अंतर

C/C++ पॉइंटर्स और रेफरेंसेस के बीच कुछ अंतर निम्नलिखित हैं।

  • जावा में कोई पॉइंटर अंकगणित नहीं। पॉइंटर्स मेमोरी पते हैं और एक पॉइंटर एक वेरिएबल के मेमोरी पते को इंगित करता है। C/C++ में, एक पॉइंटर को नए पते पर इंगित करने के लिए इंक्रीमेंट/डिक्रीमेंट किया जा सकता है लेकिन जावा में, रेफरेंसेस पर अंकगणितीय संक्रियाओं की अनुमति नहीं है।

  • जावा में कोई पॉइंटर मैनिपुलेशन नहीं। हालांकि एक रेफरेंस आंतरिक रूप से एक पॉइंटर का उपयोग करता है लेकिन जावा रेफरेंस वेरिएबल का उपयोग करके अंतर्निहित पॉइंटर में किसी भी मैनिपुलेशन की अनुमति नहीं देता है। यह जावा को अधिक सुरक्षित और मजबूत बनाता है। एक रेफरेंस केवल एक ऑब्जेक्ट को संदर्भित कर सकता है या null हो सकता है।

  • जावा में पॉइंटर्स की कोई कास्टिंग नहीं। C/C++ में, हम int* को char* में कास्ट कर सकते हैं लेकिन जावा में, केवल संबंधित ऑब्जेक्ट्स को कास्ट किया जा सकता है जैसे समान हायरार्की के ऑब्जेक्ट।

  1. - C++ में पॉइंटर ऑपरेटर & क्या है?

    C++ दो पॉइंटर ऑपरेटर्स प्रदान करता है, जो हैं एड्रेस ऑफ ऑपरेटर (&) और इनडायरेक्शन ऑपरेटर (*)। एक पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता रखता है या आप कह सकते हैं कि एक वेरिएबल जो दूसरे वेरिएबल का पता रखता है, उसे दूसरे वेरिएबल को पॉइंट टू करना कहा जाता है। एक वेरिएबल किसी भी डेटा प्रकार क

  1. - लिनक्स पर C++ के लिए सर्वश्रेष्ठ IDE कौन सा है?

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। लिनक्स पर C++ के लिए कोई एक सर्वश्रेष्ठ IDE नहीं है; आपको अपने टूल को

  1. - C# में Pointers (पॉइंटर्स) क्या हैं?

    C# में पॉइंटर्स (Pointers) पॉइंटर एक वेरिएबल है जो **दूसरे वेरिएबल का मेमोरी एड्रेस** स्टोर करता है। C# में पॉइंटर्स केवल unsafe कॉन्टेक्स्ट में अनुमत हैं क्योंकि वे टाइप सेफ्टी और मेमोरी सेफ्टी को बायपास करते हैं। सिंटैक्स type* variableName; // C# स्टाइल // उदाहरण: int* p; // int पॉइंटर dou