পয়েন্টার (Pointers)
পয়েন্টার ভেরিয়েবল একটি ভেরিয়েবলের ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়।
সিনট্যাক্স
Type *pointer;
ইনিশিয়ালাইজেশন
Type *pointer; Pointer = variable name;
রেফারেন্স (References)
যখন একটি প্যারামিটার রেফারেন্স হিসেবে ডিক্লেয়ার করা হয়, তবে এটি একটি বিদ্যমান প্যারামিটারের বিকল্প নাম হয়ে যায়।
সিনট্যাক্স
Type &newname = existing name;
ইনিশিয়ালাইজেশন
Type &pointer; Pointer = variable name;
পয়েন্টার এবং রেফারেন্স প্যারামিটারের প্রধান পার্থক্যগুলো নিচে দেওয়া হলো:
- রেফারেন্স একটি বিদ্যমান ভেরিয়েবলকে অন্য একটি নাম দিয়ে রেফার করতে ব্যবহৃত হয়, পয়েন্টার ভেরিয়েবলের ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়।
- রেফারেন্সে NULL মান অ্যাসাইন করা যায় না, কিন্তু পয়েন্টারে করা যায়।
- একটি রেফারেন্স ভেরিয়েবল পাস বাই ভ্যালু (pass by value) দিয়ে রেফারেন্স করা যায়, কিন্তু পয়েন্টার পাস বাই রেফারেন্স (pass by reference) দিয়ে রেফারেন্স করা যায়।
- রেফারেন্স ডিক্লেয়ারেশনের সময়ই ইনিশিয়ালাইজ করা বাধ্যতামূলক, কিন্তু পয়েন্টারের জন্য এটা বাধ্যতামূলক নয়।
- রেফারেন্স মূল ভেরিয়েবলের সাথে একই মেমরি ঠিকানা শেয়ার করে কিন্তু স্ট্যাকে কিছু স্পেস নেয়, আর পয়েন্টারের নিজস্ব মেমরি ঠিকানা এবং স্ট্যাকে আকার থাকে।