ইনক্রিমেন্ট অপারেটর ++ তার অপারেন্ডে 1 যোগ করে এবং ডিক্রিমেন্ট অপারেটর -- এর অপারেন্ড থেকে 1 বিয়োগ করে। তাই,
x = x+1; is the same as x++;এর মতই
এবং একইভাবে,
x = x-1; is the same as x--;এর মতই
ইনক্রিমেন্ট এবং ডিক্রিমেন্ট উভয় অপারেটরই অপারেন্ডের পূর্বে (উপসর্গ) বা অনুসরণ (পোস্টফিক্স) করতে পারে।
x = x+1; can be written as ++x;হিসাবে লেখা যেতে পারে
উল্লেখ্য যে, যখন একটি বৃদ্ধি বা হ্রাস একটি অভিব্যক্তির অংশ হিসাবে ব্যবহার করা হয়, তখন উপসর্গ এবং পোস্টফিক্স ফর্মগুলির মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য রয়েছে। আপনি যদি প্রিফিক্স ফর্ম ব্যবহার করেন তবে এক্সপ্রেশনটি বিশ্রামের আগে ইনক্রিমেন্ট বা হ্রাস করা হবে এবং আপনি যদি পোস্টফিক্স ফর্ম ব্যবহার করেন তবে সম্পূর্ণ এক্সপ্রেশন মূল্যায়নের পরে বৃদ্ধি বা হ্রাস করা হবে৷
- উপসর্গ সংস্করণে (অর্থাৎ, ++i), i-এর মান বৃদ্ধি পেয়েছে, এবং অভিব্যক্তির মান হল i-এর নতুন মান। তাই মূলত এটি প্রথমে বৃদ্ধি পায় তারপর অভিব্যক্তিতে একটি মান নির্ধারণ করে।
- পোস্টফিক্স সংস্করণে (অর্থাৎ, i++), i-এর মান বৃদ্ধি পায়, কিন্তু অভিব্যক্তির মান হল i-এর আসল মান। তাই মূলত এটি প্রথমে এক্সপ্রেশনের একটি মান নির্ধারণ করে এবং তারপর পরিবর্তনশীলকে বৃদ্ধি করে।
উদাহরণ
আসুন আরও ভালোভাবে বোঝার জন্য কিছু কোড দেখি −
#include<iostream> using namespace std; int main() { int x = 3, y, z; y = x++; z = ++x; cout << x << ", " << y << ", " << z; return 0; }
আউটপুট
এটি আমাদের আউটপুট দেবে −
5, 3, 5
কেন? আসুন এটি বিস্তারিতভাবে দেখি -
- x থেকে 3 শুরু করুন
- এক্স++ এক্সপ্রেশন মূল্যায়ন করে আমরা যে মানটি পাই তা নির্ধারণ করুন, অর্থাৎ, বৃদ্ধির আগে x এর মান তারপর x বৃদ্ধি করুন।
- বৃদ্ধি x তারপর z নির্ধারণ করুন আমরা যে মানটি পাই তা মূল্যায়ন করে রাশি ++x, অর্থাৎ, বৃদ্ধির পরে x এর মান।
- এই মানগুলি মুদ্রণ করুন