View Full Version : چگونگی مقدار گرفتن متغیر با استفاده از ++
esmit61
یک شنبه 29 آذر 1388, 21:23 عصر
سلام
میشه توضیح بدید چرا مقدار متغیر c بعد از اجرا برابر با 24 میشه ؟
int a=10;
c=++a + ++a;
من اینجوری تفسیر میکنم که ++ اولی مقدار a رو 11 میکنه و ++ دومی برابر با 12 میشه و جمع اینها میشه 23. کجای استدلالم اشتباهه ؟
Microname
یک شنبه 29 آذر 1388, 23:12 عصر
http://barnamenevis.org/forum/showthread.php?t=196067
:متفکر: چرا سوال تکراری شد؟
این سوال استادتون بود؟:چشمک:
esmit61
یک شنبه 29 آذر 1388, 23:34 عصر
باور کن نه !
امشب بصورت کاملاً تصائفی داشتم یه pdf میخوندم اینو توش دیدم. ولی خیلی جالب بود. هرچند تا الان که جواب نگرفتم
M4st3r_4w4r3
دوشنبه 30 آذر 1388, 00:15 صبح
سلام
میشه توضیح بدید چرا مقدار متغیر c بعد از اجرا برابر با 24 میشه ؟
int a=10;
c=++a + ++a;
من اینجوری تفسیر میکنم که ++ اولی مقدار a رو 11 میکنه و ++ دومی برابر با 12 میشه و جمع اینها میشه 23. کجای استدلالم اشتباهه ؟
اولویت ++ قبل از متغیر بیشتر از جمع بین 2 تا a++ هست !
پس اول a دو بار ++ میشه ( یعنی میشه 12 ! ) بعد دو تا 12 با هم جمع میشن ! ( یعنی میشه 24 !)
موفق باشید
esmit61
دوشنبه 30 آذر 1388, 10:00 صبح
منم ميدونم كه اولويت بيشتره. اگه دقت كرده باشيد توي استدلالي هم كه كردم اينو در نظر گرفتم. من فقط ميگم سمت چپ + بايد بشه 11 و سمت راستش بايد بشه 12 و جمع اينها ميشه 23 !
majmaji
دوشنبه 30 آذر 1388, 10:15 صبح
خوب نه ديگه اشتباه شما اينه اول بايد هر دوتاي ++ رو حساب كنيد a در مرتبه اول ميشه 11 و مقدارش در a ذخيره ميشه و دوباره ++ صورت ميگيره و مقدار 12 در a ذخيره ميشه حالا شما يك a داريد كه مقدارش 12 هست پس مقدار a+a ميشه 24
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.