সি অপারেটর বোঝার আগে আসো আমরা সাধারণভাবে অপারেটর বলতে কী বুঝাই তা নিয়ে আলোচনা করি । নিচের সহজ গাণিতিক উদাহরণটি দেখোঃ
এখানে কী হচ্ছে? দুটি সংখ্যা ২ ও ৩ যোগ করা হচ্ছে । এই যোগ করা হলো একটা কাজ বা অপারেশন । অপারেশন করা হচ্ছে কাদের উপর? নিশ্চয়ই ২ ও ৩ সংখ্যা দুটোর উপর? তাই ২ ও ৩ হচ্ছে এখানে অপারেন্ড । আর এ অপারেন্ড ২ ও ৩ এর উপরে যোগ অপারেশনটি করলো কে? + চিহ্নটি, তাই না? তাই + চিহ্নটি হলো এখানে অপারেটর । অর্থাৎ-
সি তে অপারেটর মূলত দুই প্রকার ।
বাইনারি অপারেটর এ আমরা একটু পরে আসছি । আসো আপাতত ইউনারি অপারেটর নিয়ে কথা বলি
Loading...
দুটি অত্যন্ত গুরুত্বপূর্ণ অপারেটর হলো ++ এবং -- । ++ এর কাজ হলো ভ্যারিয়েবলের মান 1 বাড়িয়ে দেয়া আর -- এর কাজ হলো ভ্যারিয়েবলের মান 1 কমিয়ে দেয়া । নিচের প্রোগ্রামটি দেখোঃ
1#include <stdio.h>
2
3int main()
4{
5 int i = 0;
6 printf("First Case: Value of i is %d \n", i);
7 i++;
8 printf("Second Case: Value of i is %d \n", i);
9 i++;
10 printf("Third Case: Value of i is %d \n", i);
11
12 printf("\n\n");
13
14 int j = 3;
15 printf("First Case: Value of j is %d \n", j);
16 j--;
17 printf("Second Case: Value of j is %d \n", j);
18 j--;
19 printf("Third Case: Value of j is %d \n", j);
20}
আউটপুটে কী দেখতে পেলে? প্রতিবার i++ করাতে i এর মান ১ করে বৃদ্ধি পেয়েছে, আর j-- করাতে j এর মান ১ করে কমেছে । একটু পরে যখন আমরা লুপ শিখবো তখন এই অপারেটর দুটি আমাদের বারবার ব্যবহার করতে হবে ।
++ এবং -- অপারেটর দুটি কে দুভাবে ব্যবহার করা যায় । একটি হলো ভ্যারিয়েবলের আগে অপারেটর, যাকে বলে Postfix (যেমনঃ ++i) আরেকটি হলো ভ্যারিয়েবলের পরে অপারেটর, যাকে বলে Prefix (যেমনঃ i++) । দুটির মধ্যে পার্থক্য কী?
++i ব্যবহার করলে যে লাইনে ++i ব্যবহার করা হবে সেই লাইনের প্রতিটি জায়গায় i এর মান ১ করে বেড়ে ব্যবহার করা হবে । অপরদিকে, i++ যে লাইনে করা হবে তার পরের লাইন থেকে i এর মা ১ করে বাড়িয়ে ব্যবহার করা হবে । বুঝতে সমস্যা হলে এই প্রোগ্রামটি নিজে কোড করে চালিয়ে আউটপুট বোঝার চেষ্টা করোঃ
1#include <stdio.h>
2
3int main()
4{
5 int i = 10;
6 int j = ++i;
7 printf("Value of i is %d and value of j is %d\n\n", i, j);
8 i = 10;
9 j = i++;
10 printf("Value of i is %d and value of j is %d\n\n", i, j);
11}
এ প্রোগ্রামের আউটপুট হবে এরকমঃ
Value of i is 11 and value of j is 11
Value of i is 11 and value of j is 10
কী বুঝতে পারলে? লাইন ৬ এ Prefix Notation ব্যবহার করায় আগে i এর মান 1 বাড়ানো হয়েছে, এরপরে তাকে j তে অ্যাসাইন করা হয়েছে । কিন্তু লাইন ৯ এ Postfix Notation ব্যবহার করায় আগে i এর আগের মানকে j তে রাখা হয়েছে, পরে i এর মান ১ বাড়ানো হয়েছে ।
আশা করি ইউনারি অপারেটর দুটো তোমরা বুঝতে পেরেছো । পরের অধ্যায়ে আমরা বাইনারি অপারেটর নিয়ে আলোচনা শুরু করবো ।