पॉइंटर्स
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* में कास्ट कर सकते हैं लेकिन जावा में, केवल संबंधित ऑब्जेक्ट्स को कास्ट किया जा सकता है जैसे समान हायरार्की के ऑब्जेक्ट।