public class EvaluationOrder{
public static void main(String[] args){
int[] a = {4,4};
int b = 1;
a[b] = b = 0;//此处究竟a 的哪个元素被赋予了0?
System.out.println("b:" + b);
System.out.println("a[0]: " + a[0]);
System.out.println("a[1]: " + a[1]);
}}---------- 输出结果----------
b:0
a[0]: 4
a[1]: 0在JAVA中,所谓的计算顺序(evaluation order)是怎么确定的?
public static void main(String[] args){
int[] a = {4,4};
int b = 1;
a[b] = b = 0;//此处究竟a 的哪个元素被赋予了0?
System.out.println("b:" + b);
System.out.println("a[0]: " + a[0]);
System.out.println("a[1]: " + a[1]);
}}---------- 输出结果----------
b:0
a[0]: 4
a[1]: 0在JAVA中,所谓的计算顺序(evaluation order)是怎么确定的?
int b = 1;
int* p = a + b;
b = 0;
*p = b;
那是不是说给a的哪个元素赋值是在编译期间确定的?但我试了下,在运行时也行。
public class EvaluationOrder{
public static void main(String[] args){
int[] a = {4,4};
int b = 1;
a[b] = b = 0;
System.out.println("b:" + b);
System.out.println("a[0]: " + a[0]);
System.out.println("a[1]: " + a[1]); //如果a[b]中的b是运行时随机产生的
int[] aa = new int[10];
int bb = (int)((Math.random())*10);
System.out.println("--------------aa 的第 "+bb+"个元素将被赋予值");
aa[bb]=5;
for(int i = 0; i < 10; i++){
System.out.println(aa[i]);
}
}}z_lping(Schemer) ,我再仔细看看你发的文档。英文的
欢迎大家来我的blog看看,给点建议
http://blog.csdn.net/jwbecalm/archive/2005/09/12/478222.aspx