读完这个帖子
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”.
原文地址:https://www.jb51.cc/c/111181.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。