সি অপারেটরস

অপারেটর কী?

সি অপারেটর বোঝার আগে আসো আমরা সাধারণভাবে অপারেটর বলতে কী বুঝাই তা নিয়ে আলোচনা করি । নিচের সহজ গাণিতিক উদাহরণটি দেখোঃ

2+32 + 3

এখানে কী হচ্ছে? দুটি সংখ্যা ২ ও ৩ যোগ করা হচ্ছে । এই যোগ করা হলো একটা কাজ বা অপারেশন । অপারেশন করা হচ্ছে কাদের উপর? নিশ্চয়ই ২ ও ৩ সংখ্যা দুটোর উপর? তাই ২ ও ৩ হচ্ছে এখানে অপারেন্ড । আর এ অপারেন্ড ২ ও ৩ এর উপরে যোগ অপারেশনটি করলো কে? + চিহ্নটি, তাই না? তাই + চিহ্নটি হলো এখানে অপারেটর । অর্থাৎ-

  1. অপারেশোন হলো একটি বিশেষ গাণিতিক বা যুক্তিমূলক বা তুলনামূলক কাজ ।
  2. যে অপারেশন করে সে অপারেটর
  3. যাদের উপরে অপারেশন করা হয় তারা হলো অপারেন্ড
  4. এবার আসো সি ভাষায় অপারেটর নিয়ে কথা বলি ।

সি অপারেটরস

সি তে অপারেটর মূলত দুই প্রকার ।

  1. ইউনারি অপারেটর [যাদের অপারেন্ড একটি]
  2. বাইনারি অপারেটর [যাদের অপারেন্ড দুইটি]

বাইনারি অপারেটর এ আমরা একটু পরে আসছি । আসো আপাতত ইউনারি অপারেটর নিয়ে কথা বলি

ইউনারি অপারেটর

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 এবং Prefix নোটেশন

++ এবং -- অপারেটর দুটি কে দুভাবে ব্যবহার করা যায় । একটি হলো ভ্যারিয়েবলের আগে অপারেটর, যাকে বলে 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 এর মান ১ বাড়ানো হয়েছে ।

আশা করি ইউনারি অপারেটর দুটো তোমরা বুঝতে পেরেছো । পরের অধ্যায়ে আমরা বাইনারি অপারেটর নিয়ে আলোচনা শুরু করবো ।

Logo

PyxLearn

Quick Links

আমাদের মেসেজ পাঠাতে চাও?