加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

理解for循环的退出条件

发布时间:2020-12-16 03:32:41 所属栏目:百科 来源:网络整理
导读:读完这个帖子 Print an int in binary representation using C后,我有了这个问题 在用户注释中,他们发布了for循环,它为位位置分配1或0,以便从int decimal转换为char * binary. for(; bits--; u = 1) str[bits] = u 1 ? '1' : '0'; 我理解为什么不需要初始值.
读完这个帖子 Print an int in binary representation using C后,我有了这个问题

在用户注释中,他们发布了for循环,它为位位置分配1或0,以便从int decimal转换为char * binary.

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

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

for ( variable initialization; condition; variable update )

我不明白的是’bit–‘如何成为退出条件.请帮助我理解这段代码是如何工作的(我测试了它,它是有效的).

谢谢.

解决方法

在C中,零值在布尔上下文中计算为“false”.因此,当bits–计算为0时,在循环的上下文中,它计算为“false”并终止循环.

如果你说,例如:

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

它将输出“False”,因为–x计算结果为0,在布尔上下文中为“false”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读