【发布时间】:2017-04-28 07:16:32
【问题描述】:
c 中的以下程序输出 37,作为答案,我无法得出它的逻辑。在其他语言中,如 java 或 javascript 的输出是 36。有人可以解释一下相同的逻辑吗提到的语言。
C
#include <stdio.h>
int main(){
int a = 10; //assignment of variable
printf("%d",(++a + ++a + ++a)); // increment the variable
getchar();
return 0;
}
Java
public class postpreincrement {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;// variable a assigned value
System.out.println(++a + ++a + ++a);// evaluation of expression
}
}
JavaScript
var a = 10; // variable a assigned value
console.log(++a + ++a + ++a); // evaluation of expression
【问题讨论】:
-
该表达式的行为在 C 中未定义。我建议您查看 C 中的 Sequence points。
标签: javascript java c