Post and pre increment (i++ ও ++i) -এর মধ্যে পার্থক্য কী?
Example : 1
ধরলাম i,D দুটি চলক (Variable) । i=5.
যদি আমি D= i++ লিখে D এর মান প্রিন্ট করি তাহলে দেখব D=5। আর যদি D = ++i লিখে আমি D এর মান প্রিন্ট করি তাহলে D=6 দেখব।
এখান থেকে বুঝা যায় যে i++ লিখলে i এর বর্তমান মান(i=5) সে রিটার্ন করে,তারপর i এর মান এক বাড়িয়ে নেই (i=6 হয়ে যায়)। আর ++i লিখলে i প্রথমে নিজের মান ১ বাড়িয়ে নেই(i=6 হয়ে যায়) এরপর সে সেই মানটি ব্যবহার করে।
Example : 2
++ হচ্ছে increment operator. যদি Increment operator কে কোন অপারেন্ডের সামনে (i++) অর্থাত্ Postfix হিসেবে ব্যবহার করা হয়, তাহলে কম্পাইলার প্রোগ্রামে প্রথমে অপারেন্ডের পুরনো মানটা ব্যবহার করবে এবং পরে এক যোগ করবে। কিন্তু increment operator কে যদি অপারেন্ডের পেছনে (++i) অর্থাত্ prefix হিসাবে ব্যবহার করা হয় তাহলে কম্পাইলার প্রথমে অপারেন্ডের পুরনো মানের সাথে এক যোগ করবে এবং যোগফল প্রোগ্রামে ব্যবহার করবে। যেমনঃ
include<stdio.h>
int main()
{
int i=1, j=2;
printf("%d %d /n",j,j=i++);
printf("%d %d/n",++i,++j);
return 0;
}
Example : 3
#include <stdio.h>
void main()
{
int a;
a=5;
a+=(++a)+(a++);
printf("%d",a);
}
Explanation: prefix operator: (++a)=a+1=a ; postfix operator: (a++)=a=a+1 ; a+=b means a=a+b . Firstly , value is assigned a=5, after that ++a means a+1=5+1=6. Right now a value is 6. Next a++ is postfix which means first 'a' is being returned and then 'a' is being incremented. So a returned 6 and than increment 6+1=7 and keep this value in memory. Now (++a)+(a++)=6+6=12. Lastly a+=12 means a=a+12. Do you remember that, at the last time 'a' increment value and keep in their memory a=7. Now a=a+12=7+12=19.
Comments 0