&চিহ্নটি C++ এ অপারেটর হিসেবে ব্যবহৃত হয়। এটি 2টি ভিন্ন জায়গায় ব্যবহৃত হয়, একটি বিটওয়াইজ এবং অপারেটর হিসাবে এবং একটি অপারেটরের পয়েন্টার ঠিকানা হিসাবে৷
বিটওয়াইজ এবং
৷বিটওয়াইজ এবং অপারেটর (&) প্রথম অপারেন্ডের প্রতিটি বিটকে দ্বিতীয় অপারেন্ডের সেই বিটের সাথে তুলনা করে। উভয় বিট 1 হলে, বিটটি 1 এ সেট করা হয়। অন্যথায়, বিটটি 0 এ সেট করা হয়। বিটওয়াইজ এবং অপারেটরের উভয় অপারেন্ড অবশ্যই অবিচ্ছেদ্য প্রকারের হতে হবে।
উদাহরণ
নেমস্পেস std ব্যবহার করে#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
আউটপুট
৷এটি আউটপুট দেয় −
0
অপারেটরের ঠিকানা
C++ দুই-পয়েন্টার অপারেটর প্রদান করে, যেগুলো হল অপারেটরের ঠিকানা (&) এবং ইনডিরেকশন অপারেটর (*)।
একটি পয়েন্টার একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা ধারণ করে বা আপনি বলতে পারেন যে একটি ভেরিয়েবল যেটিতে অন্য ভেরিয়েবলের ঠিকানা রয়েছে তাকে অন্য ভেরিয়েবলকে "পয়েন্ট টু" বলা হয়। একটি ভেরিয়েবল একটি অবজেক্ট, স্ট্রাকচার বা আবার পয়েন্টার সহ যেকোনো ডেটা টাইপ হতে পারে।
অপারেটরের ঠিকানা (&), এবং এটি * এর পরিপূরক। এটি একটি ইউনারি অপারেটর যেটি তার অপারেন্ড দ্বারা নির্দিষ্ট ভেরিয়েবলের (r-মান) ঠিকানা প্রদান করে। উদাহরণস্বরূপ,
উদাহরণ
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // take the address of var ptr = &var; // take the value available at ptr val = *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