সাফিক্স এবং প্রিফিক্স ভার্সনের ++-এর মধ্যে একটি বড় পার্থক্য রয়েছে।
- প্রিফিক্স ভার্সনে (অর্থাৎ, ++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 কে ৩ দিয়ে ইনিশিয়ালাইজ করুন
- y-কে x++ এক্সপ্রেশন ইভ্যালুয়েট করে পাওয়া মান দিয়ে এসাইন করুন, অর্থাৎ ইনক্রিমেন্টের আগের x-এর মান তারপর x ইনক্রিমেন্ট করুন।
- x ইনক্রিমেন্ট করুন তারপর z-কে ++x এক্সপ্রেশন ইভ্যালুয়েট করে পাওয়া মান দিয়ে এসাইন করুন, অর্থাৎ ইনক্রিমেন্টের পরের x-এর মান।
- এই মানগুলো প্রিন্ট করুন