چهارشنبه 22 آبان 1392
20:25
نظرات()
اگر در محیط توربو سی پلاس پلاس برنامه ای بدینگونه بنویسیم:
int A=0;
A=A+1;
cout<<A;
A=A+1;
cout<<A;
همانطور که انتظار داریم، عدد یک را چاپ میکند. زیرا مقدار اولیه حرف که صفر بود بعلاوه یک شد و سپس چاپ شد.
اما دستور a=a+1 فرقی با ++a ندارد. پس می توان نوشت:
اما دستور a=a+1 فرقی با ++a ندارد. پس می توان نوشت:
int A=0;
A++;
cout<<A;
A++;
cout<<A;
که باز هم نتیجه پیشین را خواهیم دید یعنی A=1.
اما اگر به جای ++A اینبار بنویسیم:
اما اگر به جای ++A اینبار بنویسیم:
int A=0, B=0;
B=A++;
cout<<A;
cout<<B;
B=A++;
cout<<A;
cout<<B;
می بایستی که A=1 و B=1 باشد. پس مشکلی تا اینجا نباید باشد. اما این طور نیست و خواهیم دید A=0 و B=1 خواهد بود! اما چرا؟ در ادامه خواهیم دید چگونه و چرا این طور می شود.
ادامه مطلب