gpt4 book ai didi

c++ - : for(; max ! = 0 中的奇怪标记;最大值/=10, pow10*=10)

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:28:06 25 4
gpt4 key购买 nike

for(; max != 0 ; max/=10, pow10*=10)

摘自“基数排序”的维基页面。我以前从未见过以分号开头的循环。编译器没有捕捉到它,所以我假设它是合法的。谁能解释一下?

此外,由于我只编写了相当简单的循环,所以我没有意识到您可以在 for() 的末尾进行多个赋值(正确的词?),例如“max/=10, pow10*=10” statement ... 这个有限制吗?形式不对?

谢谢大家! (请原谅我可能用错了词汇……时间还早,我需要更多咖啡……)

最佳答案

这是完全合法的。这是一个带有空初始化 block 的 for 循环。

最典型的 for 循环看起来像这样:

for (int i = 0; i < size; i++) {
...
}

这(几乎)等同于以下内容:

int i = 0;
for ( ; i < size; ) {
...
i++;
}

(除了在第一种情况下 i 的范围被限制在循环内,而在第二种情况下,i 在循环后仍然可见,因为它的范围是封闭 block 。)

For 循环有三个 block ,用分号分隔:初始化循环条件循环增量。其中任何一个或所有这些都可以为空。所以这也是合法的(导致无限循环):

for(;;)

关于c++ - : for(; max ! = 0 中的奇怪标记;最大值/=10, pow10*=10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684442/

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