我目前正在阅读《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(使用前将#替换为@)