c语言没有明确规定表达式的求值顺序!除了逻辑表达式的短路求值!
例如下面的程序:
int a = 10;
int func(){
a = 5;
return 5;
}
a + func()的值就不定。
在gcc下是先计算func,所以值为10
java明确规定了求值顺序是从左到右。
例如下面的程序:
int a = 10;
int func(){
a = 5;
return 5;
}
a + func()的值就不定。
在gcc下是先计算func,所以值为10
java明确规定了求值顺序是从左到右。