无法理解 a = b = 0 的目的;

2024-03-07

我目前正在阅读《Java 初学者指南》,书中的某些地方有一段代码让我感到困惑,但我找不到它的作用的解释。

int a;
int b;
a = b = 0; //This is the line I don't understand.

我所理解的是,0 的值被复制到 b 中,然后 b 被复制到 a 中,但我不明白这样做的意义是什么。另一个例子是:

Queue(int size) {
   char q[];
   putloc = getloc = 0;
}

我的问题是,如果您尝试使用数组创建先进先出队列或行,这段代码的意义是什么?


这只是一个与此完全相同的快捷方式:

a = 0;
b = 0;

Why a = b = 0;作品?因为赋值操作是一个表达从右到左关联,所以b = 0首先执行,分配0 to b然后是值b被分配给a, 像这样:a = b。明确关联顺序,发生的情况如下:

(a = (b = 0));
   ^    ^
   |    |
   |    Executes first
   Executes second

你为什么要这样做?好吧,为了明确两个变量具有相同的值(并节省一些击键),但在此过程中牺牲了一些可读性。我认为在单独的行中声明和分配每个变量会更清楚,即使它们具有相同的初始值:

int a = 0;
int b = 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法理解 a = b = 0 的目的; 的相关文章

随机推荐