【发布时间】:2019-07-25 15:39:14
【问题描述】:
我试图了解下面这段代码的工作原理。
while (c->next != NULL) c = c->next;
c->points[c->pointNum] = p;
c->pointNum++;
这里的第 2 行和第 3 行是否受到 while 循环的影响?单行while循环如何工作?
【问题讨论】:
我试图了解下面这段代码的工作原理。
while (c->next != NULL) c = c->next;
c->points[c->pointNum] = p;
c->pointNum++;
这里的第 2 行和第 3 行是否受到 while 循环的影响?单行while循环如何工作?
【问题讨论】:
代码可以改写成这样更清晰:
// advance until c->next is NULL
while (c->next != NULL) {
c = c->next;
}
// Now c is the last node in the chain
c->points[c->pointNum] = p;
c->pointNum++;
如您所见,您的表单利用了 C 语言的单行支持(一行长的块不需要用大括号括起来)。正如您所体验的那样,这种形式虽然更紧凑,但可能更令人困惑。
【讨论】: