gpt4 book ai didi

java - 将一维数组处理为 a[ (b=c) [index]]。这是什么意思?

转载 作者:行者123 更新时间:2023-12-01 18:35:28 26 4
gpt4 key购买 nike

在测试中我遇到了以下问题:

    int[] a = {3, 2, 1, 0};
int[] b = {12, 13, 14, 15};

System.out.println(b[(b=a)[3]]); // ?
System.out.println(b[3]); // ?

输出:

12
0

谁能解释一下这个结果?

b[ (b=a) [3] ]

构造方法是什么?

最佳答案

只需从左到右计算该表达式:

b[ (b=a) [3] ]
  • 首先是访问数组 b 中的索引。
  • 访问哪个索引由[]中的表达式决定:

    • [(b=a)[3]]
  • 计算里面的表达式:

    • 第一个 b 引用被赋予 a 引用的值。因此,现在 b 引用了 a 引用的数组。该表达式实际上等效于:
      • b = a,后跟 [b[3]]

所以,原来的表达式变成:

b[a[3]] // == b[0] // == 12

现在,在第一个表达式之后,由于 b 引用已更改为指向 a 数组,因此第二个表达式:b[3] ,等同于:a[3],即0

关于java - 将一维数组处理为 a[ (b=c) [index]]。这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com