কম্পিউটার টিউটোরিয়াল

C++-এ কম্পাউন্ড অ্যাসাইনমেন্ট অপারেটর


কম্পাউন্ড অ্যাসাইনমেন্ট অপারেটরগুলো e1 op= e2 ফর্মে নির্দিষ্ট করা হয়, যেখানে e1 একটি মডিফাইয়েবল l-value যা const টাইপের নয় এবং e2 নিচের যেকোনো একটি:

  • একটি আর্থমেটিক টাইপ
  • একটি পয়েন্টার, যদি op + বা - হয়

e1 op= e2 ফর্মটি e1 = e1 op e2 এর মত কাজ করে, কিন্তু e1 শুধু একবার ইভ্যালুয়েট হয়।

নিচে C++-এ কম্পাউন্ড অ্যাসাইনমেন্ট অপারেটরগুলো দেওয়া হলো:

অপারেটরবিবরণ
*=প্রথম অপারেন্ডের মানকে দ্বিতীয় অপারেন্ডের মান দিয়ে গুন করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
/=প্রথম অপারেন্ডের মানকে দ্বিতীয় অপারেন্ডের মান দিয়ে ভাগ করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
%=প্রথম অপারেন্ডের মডুলাস নিন দ্বিতীয় অপারেন্ডের মান দিয়ে; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
+=দ্বিতীয় অপারেন্ডের মানকে প্রথম অপারেন্ডের সাথে যোগ করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
-=দ্বিতীয় অপারেন্ডের মানকে প্রথম অপারেন্ড থেকে বিয়োগ করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
<<=প্রথম অপারেন্ডের মানকে দ্বিতীয় অপারেন্ডের মান নির্দিষ্ট বিট সংখ্যা লেফট শিফট করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
>>=প্রথম অপারেন্ডের মানকে দ্বিতীয় অপারেন্ডের মান নির্দিষ্ট বিট সংখ্যা রাইট শিফট করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
&=প্রথম এবং দ্বিতীয় অপারেন্ডের বিটওয়াইজ AND করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
^=প্রথম এবং দ্বিতীয় অপারেন্ডের বিটওয়াইজ এক্সক্লুসিভ OR করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।
|=প্রথম এবং দ্বিতীয় অপারেন্ডের বিটওয়াইজ ইনক্লুসিভ OR করুন; ফলাফল প্রথম অপারেন্ড দ্বারা নির্দিষ্ট অবজেক্টে স্টোর করুন।

উদাহরণ

আসুন এই অপারেটরদের কিছু উদাহরণ দেখি:

#include <iostream>
using namespace std;
int main() {
    int a = 3, b = 2;
    a += b;
    cout << a << endl;
    a -= b;
    cout << a << endl;
    a *= b;
    cout << a << endl;
    a /= b;
    cout << a << endl;
    return 0;
}

আউটপুট

এটি নিচের আউটপুট দেবে:

5 3 6 3

মনে রাখবেন এনামারেটেড টাইপে কম্পাউন্ড অ্যাসাইনমেন্ট এরর জেনারেট করে। যদি লেফট অপারেন্ড পয়েন্টার টাইপের হয়, তবে রাইট অপারেন্ড অবশ্যই পয়েন্টার টাইপের হতে হবে অথবা একটি কনস্ট্যান্ট এক্সপ্রেশন যা ০ ইভ্যালুয়েট করে। যদি লেফট অপারেন্ড ইন্টিগ্রাল টাইপের হয়, তবে রাইট অপারেন্ড পয়েন্টার টাইপের হতে পারবে না।

  1. C++-এ রিলেশনাল অপারেটর

  2. C++-এ এরিথমেটিক অপারেটর

  3. C#-এ কমপাউন্ড অ্যাসাইনমেন্ট অপারেটর (+=, -=, *=, /=, %= ইত্যাদি)

  4. পাইথনে বিভিন্ন ধরনের অ্যাসাইনমেন্ট অপারেটর কী কী?