java - 在数组索引中赋值

标签 java arrays

请查看下面的代码片段,让我知道结果如何变成 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] ] ); 的结果与将事物推送到评估堆栈的顺序有关...例如

  1. 引用
  2. 将存储在a中的引用更改为存储在b中的引用
  3. 评估 b[3] => 0
  4. 打印在 1 中被插入的数组的索引 0。),即原始 a

所以它打印原始 a 数组的 0 处的元素

System.out.println(a[0]); 就是 b[0]

关于java - 在数组索引中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819454/

相关文章:

php - 使用 array_walk() 时是否需要这种技术

c - C 中的指针操作和运算符优先级

Java - 如果无线网络已经存在,如何连接到无线网络?

ruby - 如何替换散列中包含的值?

java - 如何对二维数组进行排序?

java - 阶乘法 - 递归还是迭代? ( java )

java - 将测试库文件读入二维数组

java - 使用泛型链接任务

java - selenium webdriver 中的空指针异常 - TestNG - PageFactory

java - 是否仍支持 GWT Mosaic?