পয়েন্টার (C/C++)
পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের মেমরি ঠিকানা সংরক্ষণ করে।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
int i = 8;
int *pI;
pI = &i; // i-এর ঠিকানা pI-তে
cout << i << endl; // 8
cout << pI << endl; // ঠিকানা
cout << *pI << endl; // 8 (value at address)
*pI = 10; // পয়েন্টারের মাধ্যমে মান পরিবর্তন
cout << i << endl; // 10
}
আউটপুট
8 0x7fee1ae7bc94 8 10
রেফারেন্স (Java)
জাভাতে রেফারেন্স হলো একটি ভেরিয়েবল যা একটি অবজেক্টকে রেফার করে, যার মাধ্যমে অবজেক্টের প্রোপার্টি এবং মেথড অ্যাক্সেস করা যায়।
উদাহরণ
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++-এ
int*কেchar*কাস্ট করা যায়, জাভাতে শুধু সম্পর্কিত অবজেক্ট কাস্ট করা যায়।