以下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 语言中,这是未定义行为,因为它试图在不同步的情况下修改和读取同一变量。
关于javascript - C 和其他语言中的预增量行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43674250/