[課業] c語言 運算元
int abc(int *k) {
*k += 4;
return 3 * ( *k) - 1;
}
void main() {
int i = 10, j = 10, result1, result2;
result1 = (i / 2) + abc( &i);
result2 = abc( &j) + (j / 2);
}
如果在運算式中的運算元估算的順序是由右到左,則result1,則result2的值為何?
看了補習班答案是 result1=48, result2=46
result1= (i/2) + abc(&i)
= (14/2) + 41 (*k=14; 3*14 - 1=41)
= 48
想問的是,為什麼在abc裹的計算是先乘除後加減呢
而不是由右到左推算呢
因為本題沒有提運算子優先權,是不是應該照題目要求一律從右到左呢
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 54.183.135.27
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1494347053.A.F67.html
※ mike31830:轉錄至看板 Grad-ProbAsk 05/10 00:35
→
05/10 00:44, , 1F
05/10 00:44, 1F
推
05/10 07:56, , 2F
05/10 07:56, 2F
→
05/10 07:57, , 3F
05/10 07:57, 3F
→
05/10 07:57, , 4F
05/10 07:57, 4F
→
05/10 07:57, , 5F
05/10 07:57, 5F
推
05/10 08:04, , 6F
05/10 08:04, 6F
→
05/10 08:04, , 7F
05/10 08:04, 7F
→
05/10 08:04, , 8F
05/10 08:04, 8F
推
05/10 08:41, , 9F
05/10 08:41, 9F
推
05/10 10:48, , 10F
05/10 10:48, 10F
→
05/10 12:55, , 11F
05/10 12:55, 11F
→
05/10 13:07, , 12F
05/10 13:07, 12F
推
05/10 13:09, , 13F
05/10 13:09, 13F
→
05/10 13:09, , 14F
05/10 13:09, 14F
→
05/10 13:09, , 15F
05/10 13:09, 15F
→
05/10 13:38, , 16F
05/10 13:38, 16F
→
05/10 13:38, , 17F
05/10 13:38, 17F
→
05/10 13:39, , 18F
05/10 13:39, 18F
→
05/10 13:39, , 19F
05/10 13:39, 19F
→
05/10 13:48, , 20F
05/10 13:48, 20F
推
05/11 21:21, , 21F
05/11 21:21, 21F
→
05/11 21:21, , 22F
05/11 21:21, 22F