含printf的C语言for循环代码输出是什么?为何未出现预期无限循环?
这段C语言代码的输出结果
这段代码的最终输出是10,具体执行流程如下:
第一步:执行for循环的初始化表达式
先运行printf("1"),输出字符1,printf的返回值是成功输出的字符数量(这里是1),但初始化表达式仅执行一次,返回值不影响循环启动。第二步:判断循环条件表达式
接下来计算!printf("0"):- 先执行
printf("0"),输出字符0,返回值为1(输出了1个字符); - 对返回值取反,
!1的结果是0(C语言中0表示假)。
因为循环条件为假,所以不会进入循环体,printf("Sanchin")根本不会执行。
- 先执行
第三步:循环后操作不会执行
由于循环条件不成立,for循环的第三个表达式printf("2")也不会被执行。
所以整个代码执行完后,只会输出10,不会进入无限循环,也不会输出其他内容。
内容的提问来源于stack exchange,提问作者Rai
相关产品推荐
相关产品推荐

