রেফারেন্স
যখন একটি ভেরিয়েবলকে রেফারেন্স হিসেবে ঘোষণা করা হয়, তবে এটি একটি বিদ্যমান ভেরিয়েবলের বিকল্প নাম হয়ে ওঠে।
সিনট্যাক্স
Type &newname = existing_name;
ইনিশিয়ালাইজেশন
Type &ref = variable_name;
পয়েন্টার
পয়েন্টার একটি ভেরিয়েবলের ঠিকানা সংরক্ষণ করতে ব্যবহৃত হয়।
সিনট্যাক্স
Type *pointer;
ইনিশিয়ালাইজেশন
Type *pointer = &variable_name;
রেফারেন্স এবং পয়েন্টারের মধ্যে প্রধান পার্থক্যগুলো হলো:
রেফারেন্স একটি বিদ্যমান ভেরিয়েবকে অন্য একটি নাম দিয়ে নির্দেশ করে, যেখানে পয়েন্টার ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
রেফারেন্সে নাল মান আসাইন করা যায় না, কিন্তু পয়েন্টারে সম্ভব।
রেফারেন্স ভেরিয়েবল পাস-বাই-ভ্যালুতে ব্যবহার করা যায়, পয়েন্টার পাস-বাই-রেফারেন্সে।
রেফারেন্স ঘোষণার সাথে সাথেই ইনিশিয়ালাইজ করতে হয়, পয়েন্টারের জন্য এটা বাধ্যতামূলক নয়।
রেফারেন্স মূল ভেরিয়েবলের সাথে একই মেমরি ঠিকানা শেয়ার করে কিন্তু স্ট্যাকে কিছু জায়গা নেয়, পয়েন্টারের নিজস্ব মেমরি ঠিকানা এবং সাইজ থাকে।