任何人都知道为啥以及如何工作?将打印啥[重复]
Posted
技术标签:
【中文标题】任何人都知道为啥以及如何工作?将打印啥[重复]【英文标题】:Anyone know why and how this works? What will be printed [duplicate]任何人都知道为什么以及如何工作?将打印什么[重复] 【发布时间】:2022-01-02 11:28:33 【问题描述】:#include <stdio.h>
int main()
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
谁能解释一下这是如何工作的? 为什么打印 32? 当我卸下刹车时,它是无限循环并打印 12?
【问题讨论】:
遵循调试器中的执行路径? 你知道 for 循环是如何工作的吗?您是否阅读了 printf 的文档以查看它返回的内容?你有答案。 【参考方案1】:首先,printf ("3")
被执行,所以它打印出3
。然后printf("2")
被执行,打印2
。因为printf()
的返回值是它打印的字符数,在本例中为1
,并且因为1
是一个非零值,所以循环在正文中继续。正文中的第一条语句是break
,意思是退出循环。所以循环终止。所以屏幕上的结果是32
【讨论】:
【参考方案2】:printf("3")
在 for 循环初始化时被调用。
调用printf("2")
来查看循环迭代是否应该终止。
printf() 返回它打印的字符数,在这两种情况下都是 1,所以循环决定执行。
循环体只是break
,因此循环在该点终止,程序结束。
【讨论】:
以上是关于任何人都知道为啥以及如何工作?将打印啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章
每个网址中 r'^ 图标的实际含义是啥?任何人都可以详细解释他的意思是啥以及这有多重要[重复]