C++ দুটি পয়েন্টার অপারেটর প্রদান করে, যেগুলো হলো অ্যাড্রেস অফ অপারেটর (&) এবং ইন্ডিরেকশন অপারেটর (*)। একটি পয়েন্টার হলো একটি ভেরিয়েবল যেটি অন্য একটি ভেরিয়েবলের অ্যাড্রেস ধারণ করে বা আপনি বলতে পারেন যে একটি ভেরিয়েবল যেটি অন্য একটি ভেরিয়েবলের অ্যাড্রেস ধারণ করে সেটি অন্য ভেরিয়েবলটিকে "পয়েন্ট টু" করে বলে। একটি ভেরিয়েবল যেকোনো ডেটা টাইপের হতে পারে যার মধ্যে অবজেক্ট, স্ট্রাকচার বা আবার পয়েন্টার নিজেই।
অ্যাড্রেস অফ অপারেটর (&), এবং এটি *-এর কমপ্লিমেন্ট। এটি একটি ইউনারি অপারেটর যা তার অপারেন্ড দ্বারা স্পেসিফাইড ভেরিয়েবলের অ্যাড্রেস (r-value) ফেরত দেয়। উদাহরণস্বরূপ,
উদাহরণ
#include <iostream>
using namespace std;
int main() {
int var;
int *ptr;
int val;
var = 3000;
ptr = &var; // var-এর অ্যাড্রেস নিন
val = *ptr; // ptr-এ উপলব্ধ মান নিন
cout << "Value of var: " << var << endl;
cout << "Value of ptr: " << ptr << endl;
cout << "Value of val: " << val << endl;
return 0;
}
আউটপুট
যখন উপরের কোড কম্পাইল এবং এক্সিকিউট করা হয়, তবে এটি নিচের ফলাফল দেয়:
Value of var: 3000 Value of ptr: 0xbff64494 Value of val: 3000