PDA

View Full Version : فرق بین دو دستور فوق؟



حمید_65
جمعه 19 آبان 1385, 03:16 صبح
سلام
از اساتید محترم میخوام ببینم که فرق بین
دستور
;++a
با
;a++
درچیه؟:متفکر:

peyman1987
جمعه 19 آبان 1385, 09:25 صبح
به a++ پیشوندی و به ++a دستوز پسوندی گفته میشه. در دستور پیشوندی اول عملگر ++ اعمال میشه و بعد عملیات بعدی و در دستور پسوندی اول عملیات دیگه انجام میشن و در آخر عمل ++. به زبان ساده تر اولویت ++ پیشوندی بیشتر از همه عملگرها و اولویت ++ پسوندی کمتر از بقیه عملگرهاست.
مثال :




int a,int b = 5;
a = ++b;
printf("%d - %d",a,b);
a = b++;
printf("%d - %d",a,b);


خروجی :
6 - 6
7 - 6

در واقع توی دستور a=++b اول یکی به b اضافه میکنه و بعد اونو توی a میریزه ولی توی دستور ++a=b اول b رو توی a میریزه و بعد به b یکی اضافه میکنه.
امیدوارم فهمیده باشین.

حمید_65
جمعه 19 آبان 1385, 11:52 صبح
peyman1987 (http://barnamenevis.org/forum/member.php?u=26685)
سلام
ممنون از راهنمایی کردن
ولی خروجی دوم 6-7 چطور شده
اگه بهb یک واحد اضافه بازم
6-6 باید دربیاد یعنی میخوام بدونم
فرقی هم میکنه

Arash_j13
شنبه 20 آبان 1385, 08:39 صبح
b دوبار ++ شده یک بار به صورت پیشوندی که مقدارش رو 6 می کنه و 6 رو داخل a می ریزه دفعه دوم به صورت پسوندی که اول 6 رو داخل a می یزه بعد یه واحد افزایش پیدا می کنه و می شه 7

peyman1987
شنبه 20 آبان 1385, 10:52 صبح
Arash-j13 درست میگه هر باز که قبل یا بعد از یه متغیر ++ بزارین به هر حال یکی به مقدارش اضافه میشه حالا چه قبل از بقیه دستورات یا بعد از همه اونها.

hasina
چهارشنبه 01 آذر 1385, 12:01 عصر
به عبارت دیگر:
با استفاده از ++a ، a قبل از اضافه شدن یک واحد به آن در عملیات شرکت می کند، و با استفاده از a++ اول یک واحد به a اضافه می شود سپس در عملیات شرکت می کند.