C++ দুটি পয়েন্টার অপারেটর প্রদান করে, যেটি হল অপারেটরের ঠিকানা (&) এবং ইনডিরেকশন অপারেটর (*)। একটি পয়েন্টার একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা ধারণ করে বা আপনি বলতে পারেন যে একটি ভেরিয়েবল যেটিতে অন্য ভেরিয়েবলের ঠিকানা রয়েছে তাকে অন্য ভেরিয়েবলকে "পয়েন্ট টু" বলা হয়। একটি ভেরিয়েবল একটি অবজেক্ট, স্ট্রাকচার বা আবার পয়েন্টার সহ যেকোনো ডেটা টাইপ হতে পারে।
অপারেটরের ঠিকানা (&), এবং এটি * এর পরিপূরক। এটি একটি unary অপারেটর যেটি তার অপারেন্ড দ্বারা নির্দিষ্ট ভেরিয়েবলের (r-value) ঠিকানা প্রদান করে। উদাহরণস্বরূপ,
উদাহরণ
#include <iostream>
using namespace std;
int main () {
int var;
int *ptr;
int val;
var = 3000;
ptr = &var; // take the address of var
val = *ptr; // take the value available at 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