请查看下面的代码片段,让我知道结果如何变成 1 2 。
int[] a = { 1, 2, 3, 4 };
int[] b = { 2, 3, 1, 0 };
System.out.println( a [ (a = b)[3] ] );
System.out.println(a[0]);
实际答案 1 2
谢谢
最佳答案
说真的,这样做的目的是什么?为什么你会想要做一些让代码如此难以阅读的事情。您希望结果如何?
System.out.println( a [ (a = b)[3] ] );
的结果与将事物推送到评估堆栈的顺序有关...例如
- 引用
- 将存储在a中的引用更改为存储在b中的引用
- 评估 b[3] => 0
- 打印在 1 中被插入的数组的索引 0。),即原始 a
所以它打印原始 a
数组的 0 处的元素
System.out.println(a[0]);
就是 b[0]
关于java - 在数组索引中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819454/