Increment operator in C
Increment operator in C
সাধারণত Increment operator তাদের operand বা variable এর সাথে ১ যোগ করতে ব্যবহার করা হয়।
সি ল্যাংগুয়েজ এ ২ ধরণের Increment operator আছে -
- Postfix increment ( var++);
- Prefix increment ( ++var)
Postfix increment - প্রথমে variable এ মান assign করে তারপর increment করে!
Prefix increment - প্রথমে increment করে তারপর variable এ মান assign করে!
/* Increment and decrement operator in C postfix increment - First assign, then increment prefix increment - First increment, then assign! */ #include<stdio.h> int main() { int a,b; a = 13; a++; printf("%d\n\n",a); // 14 ++a; printf("%d\n\n",a); // 15 b = a++; printf("a and b = %d and %d\n\n",a,b); // a and b = 16 and 15 b = ++a; printf("a and b = %d and %d\n\n",a,b); // a and b = 17 and 17 |
উপরের কোডে দেখা যাচ্ছে, প্রথমে a এর মান দেয়া হয়েছে 13। পরের লাইন এ সেটা কে postfix Increment করা হয়েছে। এবং সেটা প্রিন্ট করার পরে আমরা পেয়েছি 14!
পরবর্তীতে সেটাকে prefix increment করা হয়েছে। যেহেতু postfix Increment করার পরে a এর মান ছিল 14, সুতরাং prefix increment করার পরে a এর মান আরো ১ বাড়বে। সুতরাং প্রিন্ট করার পরে আমরা পাব 15.
এই ২ টি প্রিন্ট statement পর্যালোচনা করে prefix increment এবং postfix Increment এর পার্থক্য তেমনভাবে বুঝা যাচ্ছে না।
যাই হোক এই ২ টি প্রিন্ট statement এর পরে আমাদের a এর মান কিন্তু 15।
এর পরের লাইনে দেখা যাচ্ছে (b = a++;)
এখানে a কে আবারো postfix Increment করা হয়েছে এবং এর মান টা আরেকটি variable b তে assign করা হয়েছে। এখন যদি আমরা a এবং b প্রিন্ট করি তাহলে আউটপুট কি আসবে বলুন তো?
আউটপুট আসবে a এর মান 16 এবং b এর মান 15!!
এখন প্রশ্ন হলো কেন এরকম আউটপুট আসলো? এরকম আসার কারণ হচ্ছে, postfix Increment এর সুত্র থেকে আমরা জানি সেটা প্রথমে প্রথমে variable এ মান assign করে তারপর increment করে! অর্থাৎ a এর মান আগে যা ছিলো সেটা প্রথমে b তে assign হবে। সুতরাং, এখন যদি আমরা b প্রিন্ট করি তাহলে increment করার আগে a এর মান যা ছিল তাই অর্থাৎ 15 হবে, আর a যেহেতু increment হচ্ছে সুতরাং a এর মান 16 প্রিন্ট করবে।
প্রিন্ট statement এর পরে এখন আমাদের a এর মান 16।
এর পরের লাইনে দেখা যাচ্ছে (b = ++a;)
এখানে a কে prefix increment করা হয়েছে । এখন যদি আমরা a এবং b প্রিন্ট করি তাহলে আউটপুট কি আসবে বলুন তো?
আউটপুট আসবে a এর মান 17 এবং b এর মান 17!!
এরকম আসার কারণ হচ্ছে, prefix increment এর সুত্র থেকে আমরা জানি সেটা প্রথমে increment করে তারপর variable এ মান assign করে! অর্থাৎ আমাদের a এর মান ছিল 16. এখন সেটা b তে assign
করার আগেই তার মান 1 বাড়িয়ে নিবে অর্থাৎ increment করে নিবে। তাই এখন b এবং a প্রিন্ট করলে উভয় এর মান ই 17 হবে।
good job buddy!
ReplyDeletenice work!
carry on! :)
hm very good
ReplyDeletehm very good
ReplyDeletecarry on! dekhi CGPA ta bare kina
ReplyDelete