※ [本文转录自 Examination 看板 #1P4Uqjzd ]
作者: mike31830 () 看板: Examination
标题: [课业] c语言 算子
时间: Wed May 10 00:24:10 2017
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裹的计算是先乘除后加减呢
而不是由右到左推算呢
因为本题没有提运算子优先权,是不是应该照题目要求一律从右到左呢
谢谢