gpt4 book ai didi

c - 了解 'for' 循环的退出条件

转载 作者:太空狗 更新时间:2023-10-29 17:20:01 24 4
gpt4 key购买 nike

我在阅读 Stack Overflow 问题后有这个问题 Print an int in binary representation using C .

在用户的评论中,他们发布了这个 for 循环,该循环将 1 或 0 分配给位位置,以便将 int 十进制转换为 char * 二进制。

for(; bits--; u >>= 1)
str[bits] = u & 1 ? '1' : '0';

我理解为什么不需要初始化值。这是我一直都知道的 for 循环的语法:

for ( variable initialization; condition; variable update )

我不明白“bit--”怎么会是退出条件。请帮助我理解这段代码是如何工作的(我测试了它,它是有效的)。

最佳答案

在 C 中,零值在 bool 上下文中计算为“false”。因此,当 bits-- 的计算结果为 0 时,在循环上下文中它的计算结果为“false”并终止循环。

如果你说,例如:

int x = 1;
if (--x)
{
printf("True!\n");
}
else
{
printf("False!\n");
}

它将输出“False”,因为 --x 的计算结果为 0,这在 bool 上下文中为“false”。

关于c - 了解 'for' 循环的退出条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204018/

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