我正在查看别人做的一些代码,我看到了:
if (numDetects == 0) {
Table[Index].minF =
Table[Index].maxF = F;
}
表[索引] .minF =空白对我没有任何意义。我生命中从未见过这一点。但是代码确实可以编译运行,所以有人可以向我解释一下是否有可能只留下一个等号?谢谢!
答案 0 :(得分:7)
是; C不关心第一行和第二行之间的空白区域,因此它将其视为
Table[Index].minF = Table[Index].maxF = F;
它在语法上等同于
Table[Index].minF = (Table[Index].maxF = F);
因为赋值运算符=
不仅将左侧指定给右侧,而且还返回已分配的值。在这种情况下,然后将该返回值分配给外部左侧。
答案 1 :(得分:6)
是的,这与:
相同Table[Index].minF = Table[Index].maxF = F;
赋值运算符(=)可以像任何其他运算符一样链接。它从右到左进行评估,每个评估返回分配的值。所以这相当于以下两个陈述。
Table[Index].maxF = F;
Table[Index].minF = Table[Index].maxF;
答案 2 :(得分:2)
白色空间并不重要。该行真的读了
Table[Index].minF = Table[Index].maxF = F;
相当于
int a;
int b;
a = b = 0;
答案 3 :(得分:2)
相当于:
Table[Index].minF = Table[Index].maxF = F;
答案 4 :(得分:1)
忽略空格,并将其全部评估为......
Table[Index].minF = Table[Index].maxF = F;