ورود

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