অধিকাংশ বড় বড় প্রোগ্রামে অ্যারে অপারেটরের বহুল ব্যবহার দেখা যায়। কিন্তু এই অ্যারো কেন ব্যবহার করা হয়? বা এটা ব্যবহারের কারণই বা কি?
এটি মূলত একটি এক্সেস অপারেটর। সি/সি++ এ কম্পাইল টাইম ও রান টাইমে দুভাবেই ভেরিয়েবল ডিক্লেয়ার করা যায়। আমরা সাধারণত যেভাবে ভেরিয়েবল ডিক্লেয়ার করি সেটা মূলত কম্পাইল টাইমেই মেমরি অ্যালোকেট করে থাকে। আর ডাইনামিক্যালি রান টাইমে মেমরি অ্যালোকেট করার জন্য পয়েন্টার ব্যবহার করা হয়। এই পয়েন্টার টাইপের কোন Struct, Union বা Class এর কোন মেম্বারকে এক্সেস করার জন্য অ্যারো অপারেটর (“->”) ব্যবহার করা হয়। সাধারণ নিয়মে ডট (.) অপারেটর দিয়ে মেম্বারগুলোকে এক্সেস করা হয়ে থাকে। এখন আমরা দুইটা উদাহরণ দেখি, একটা পয়েন্টার সহ এবং অন্যটি পয়েন্টার ছাড়া –
#include iostream
using namespace std;
struct student{
int roll;
char *name;
};
int main()
{
student std;
std.roll=100120;
std.name="Shahinur";
cout<<std.roll<<endl<<std.name;
return 0;
}
উপরে যে কোডটা ব্যবহার করা হয়েছে সেটাতে ডট অপারেটর ব্যবহার করা হয়েছে। ঠিক একই ভাবে পয়েন্টার ব্যবহার করে নিচের প্রোগ্রামতি দেখি –
#include iostream
using namespace std;
struct student{
int roll;
char *name;
};
int main()
{
student std, *stdptr;
stdptr=&std; // Assigning an address to the pointer
std.roll=100120;
std.name="Shahinur";
cout<<std.roll<<endl<<std.name<<endl; // Using . operator
cout<<stdptr(Arrow)roll<<endl<stdptr(Arrow)name; // Using arrow operator
return 0;
}
উপরে কোডটাতে অ্যারো অপারেটর ব্যবহার করে দেখানো হয়েছে কিভাবে এটা পয়েন্টারের সাথে রেফারেন্স হিসেবে কাজ করতে পারে। –