• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

یک مشکل کوچک

RB4U

کاربر تازه وارد
تاریخ عضویت
13 آپریل 2012
نوشته‌ها
2
لایک‌ها
0
با سلام می خواستم بدون جواب صحیح این 3 تا عبارت زیر چی میشه :

int a=10,b=11,c=12,i=11

c= ++c + ++a + ++b

c= ++a + ++a

c= ++a + ++a + ++a + i++ + ++i



 

RB4U

کاربر تازه وارد
تاریخ عضویت
13 آپریل 2012
نوشته‌ها
2
لایک‌ها
0
میشه یکم بیشتر توضیح بدین مثلا این عبارت :

int a=10, b=11, c=12 , i=11

c= ++a + ++a
جواب این عبارت طبق قوانین ریاضی و همچنین چون متغیر تا آخر خط تکثیر میشه ، میشه 23 ولی تو کامپایلر جواب میشه 24 میشه توضیح بدین کدوم درسته !

یک سوال دیگه هم دارم اینه که من تو این هفته میان ترم دارم میخواستم بدونم وقتی تو امتحان به این شکل سوال میدن که حاصل عبارت های زیر را بدست آورد :


int a=10, b=11, c=12 , i=11

---------------------------------------
c= ++c + ++a + ++b

c= ++a + ++a

c= ++a + ++a + ++a + i++ + ++i
باید با توجه به مقادیر داده شده(بالایی) مقدار هر خط را بدست آورد یا باید در هر خط مقدار جدیدی را که بدست می آوریم در خط بعدش استفاده کنیم ؟

ممنون میشم راهنمایی کنید .



 

>-->O

همکار بازنشسته
تاریخ عضویت
25 نوامبر 2009
نوشته‌ها
2,530
لایک‌ها
468
محل سکونت
㋡ همین جا ㋡
بزار با یه مثال بهتون توضیح بدم
عملگر پلاس پلاس اگر قبل از عملوند قرار بگیره اول این عملگرها عمل میکنه و نتیجه آن در محاسبات اعمال میشه ولی اگر بعد عملوند قرار بگیره مقدار فعلی عملوند مورد استفاده قرار میگیره بعد عملگر روی عملوند عمل میکنه
یه مثال ساده میزنم تا براتون راحت جا بیوفته
کد:
int x,y;
x=10;
y=++x;

در خط سوم اول یک واحد به x اضافه میشه و بعد مقدار حاصل در y قرار میگیره پس y=11 خواهد شد
حالا دستور زیر رو ببین
کد:
y=x++;

ابتدا مقدار فعلیx در y قرار میگیره و بعد یک واحد یه x اضافه میشه پس y=10میشه ولی x=11 خواهد شد

حال دستور زیر رو ببین
کد:
x=10;
y=15;
R=++x+y++;


ابتدا مقدار x که 10 هست یک واحد بهش اضافه میشه تا 11 بشه حالا مقدار جدید x با مقدار فعلی y که 15 هست جمع میشه و نتیجه آن که 26 هست در R ریخته میشه و در آخر هم y 16 خواهد شد
 

3POWER

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
1 دسامبر 2006
نوشته‌ها
2,756
لایک‌ها
543
مقدار خروجی c برابر

36
26
69

میشه
 
بالا