আজকে আমি Unary Operators সম্পর্কে একটু আলোচনা করব।
Unary Operators: C Programming Language এ যে সকল Operator একটি চলকের উপর কাজ করে নতুন মান দেয় তাদের Unary Operators বলে। সবচেয়ে ব্যবহৃত Unary Operators হচ্ছে – (minus sign). – কোন constant অথবা variable এর আগে বসে শুধু negative মান বুঝায়।
তবে প্রধান দুটি Unary Operators হচ্ছে Increment operator(++) ও Decrement operator(- -) ।
Increment operator: Increment operator কে ++ চিহ্ন দিয়ে প্রকাশ করা হয়। অর্থাত ++ sign কে increment operator বলে। এটি একটি variable এর উপর বসে এর মান 1 বাড়িয়ে দেয়। এটি variable এর আগে ও বসতে পারে পরেও বসতে পারে। যেমনঃ মনে করি x একটি variable যার মান 5 । ++X এর মান হবে 6 । তেমনি X++ মান ও হবে 6 ।
Decrement operator: তেমনি - - Decrement operator বলে। এটি একটি variable এর উপর বসে এর মান 1 কমিয়ে দেয়। এটি variable এর আগে ও বসতে পারে পরেও বসতে পারে। যেমনঃ মনে করি x একটি variable যার মান 5 । - -X এর মান হবে 4 । তেমনি X- - মান ও হবে 4 ।
তবে Increment ও Decrement দুটির ক্ষেত্রেই Variable এর আগে বসলে ও পরে বসলে Out put ভিন্ন হবে। এটা একটু বুঝতে সবার ই সমস্যা। উদাহরনে ই বুঝিয়ে বলি।
নিচের উদাহরনটা ভালো করে লক্ষ করলেই সহজে বুঝা যাবে।
আমি প্রধান কথা গুলোই আলোচনা করি।
এ প্রোগ্রামে একটি integer variable নেওয়া হয়েছে। যার মান ধরা হয়েছে 5। প্রতেক line এর পাশে এর মান দেওয়া হল।
প্রথম LINE(printf("%d\n",i++);): এখন প্রথম printf কমান্ড এ I++ দ্বারা একটি increment operator বুঝানো হয়েছে। এখনে আগে I বসানো হয়েছে এবং পরে increment operator বসানো হয়েছে। তাই প্রথমে I এর মান প্রিন্ট হয়েছে। কিন্তু I মান 1 বেড়ে র্যামে জমা হবে।
দ্বিতীয় Line(printf("%d\n",i);): এখনে I এর মান প্রিন্ট করতে বলছে । আগের line এ আমাদের I মান প্রিন্ট হয়েছে 5 কিন্তু পরে increment operator এর কারনে i এর মান 1 বেড়ে 6 হয়েছে কিন্তু কোন out put দেয় নি র্যামে জমা ছিল। পরে তাই তা এ লাইনে I এর মান প্রিন্ট করেছে 6 ।
তৃতীয় line(printf("%d\n",++i);): এ line এ আগে increment operator কাজ করে I এর মান হয় 7 পরে I এর মান প্রিন্ট করে। তাই এই line এর out put হবে 7।
চতুর্থ line(printf("%d\n",i);): এখনে I এর মান প্রিন্ট করতে বলছে।আগের line এ আমাদের I মান প্রিন্ট হয়েছে 7। আর কোন পরিবর্তন হয়নি তাই তাই এই line এর out put হবে 7।
পঞম line(printf("%d\n",i--);): এখনে আগে I বসানো হয়েছে এবং পরে discernment operator বসানো হয়েছে। তাই প্রথমে I এর মান প্রিন্ট হয়েছে। কিন্তু I মান 1 কমে র্যামে জমা রয়েছে।
ষষ্ট line(printf("%d\n",i);): এখনে I এর মান প্রিন্ট করতে বলছে। এ line এর আগে decrement operator কাজ করে I এর মান কমে হয় 6 পরে। । আর কোন পরিবর্তন হয়নি। তাই এই line এর out put হবে 6।
সপ্তম line(printf("%d\n",--i);): এ line এ আগে decrement operator কাজ করে I er মান হয় 5 পরে I এর মান প্রিন্ট করে। তাই এই line এর out put হবে 5।
অষ্টম line(printf("%d\n",i);): এখনে I এর মান প্রিন্ট করতে বলছে। আগের line এ আমাদের I মান প্রিন্ট হয়েছে 5। আর কোন পরিবর্তন হয়নি তাই তাই এই line এর out put হবে 5।
কেমন হল জানাবেন। সবাইকে ধন্যবাদ।
আমি জাকির হোসাইন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 7 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 224 টি টিউন ও 1487 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 5 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
পৃথিবীতে অল্পকয়েক দিনের জন্য অনেকেই আসে, হেঁটে খেলে চলে যায়। এর মধ্যে অল্প কয়েক জনই পায়ের চাপ রেখে যায়।ওদের একজন হতে ইচ্ছে করে। প্রযুক্তির আরেকটি সেরা ব্লগ টেকটুইটস। আপনাদের স্বাগতম, যেখানে প্রতিটি বন্ধুর অংশ গ্রহনে গড়ে উঠেছে একটি পরিবার। আপনাদের পছন্দ হবে আশা করি। ফেসবুকে আমি - ?জাকির!
ধন্যবাদ টিউন করার জন্য, প্রিয়তে রাখলাম।