c - 有人可以解释while循环中给出的条件吗
问题描述
我想知道在下面给出的代码中循环检查的条件是什么 这里是代码
#include<stdio.h>
int main(){
while (!printf("hello owrld"));
return 0;
}
解决方案
它正在检查printf()
返回的内容(打印的字符数,或表示错误的负值)是否为零。
引自N1570 7.21.6.1 fprintf 函数:
fprintf 函数返回传输的字符数,如果发生输出或编码错误,则返回负值。
引自 N1570 7.21.6.3 printf 函数:
printf 函数等效于 fprintf,其参数 stdout 置于 printf 的参数之前。
引用 N1570 6.5.3.3 一元算术运算符:
逻辑否定运算符的结果!如果其操作数的值比较不等于 0,则为 0,如果其操作数的值比较等于 0,则为 1。结果的类型为 int。表达式 !E 等价于 (0==E)。
推荐阅读
- coqide - CoqIDE:在当前环境中找不到引用
- javascript - 如何在javascript中通过动态ID填充选择
- boolean - 当给定 a^b, b^c 和 c^a 时如何得到 a,b,c
- textbox - Angular 6 - 材质文本框浮动占位符不起作用
- jquery-ui - 使用 jQuery 选项卡时避免使用 ID
- python - Object_list 未在模板中显示正确的数据
- mysql - 带有 MySQL 问题的 Qt 静态构建
- android - 如何导入库“应用程序”,因为找不到要导入的包应用程序
- java - 转到更新页面时,Java Web 上的更新功能未填充文本框
- python - 使用 Python 获取子模块的 Git 哈希(首选 pygit2)