您的位置:首页 > 其它

有趣的for循环

2016-03-24 20:53 134 查看
#include <stdio.h>
int main()
{
int i = 0;
for(i = 0, printf(" First = %d", i);i<10, printf(" Second = %d", i);i++, printf(" Third = %d", i))
{
printf(" Fourth = %d", i);
}
system("pause");
return 0;
}


这段代码会输出什么?我说死循环你会信?



上面是我在某一时刻截取的屏幕输出,可以看到此时的Second 、Third 、Fourth 都已经达到了500以上,并不是我们一开始想象的到10就截止了,而且它一直在执行屏幕输出,已经是一个死循环了。那么为什么会有上面的现象呢?下面来分析一下。

for循环语句块判断是否继续执行的语句已经换成了i<10, printf(” Second = %d”, i),这里考察的两个知识点分别是:

1、逗号表达式的值怎么求

2、printf()函数的返回值

来分析分析:逗号表达式的值是最后一个逗号后面的表达式的值,而该语句逗号后面的表达式是 printf(” Second = %d”, i),那么我们只要知道printf(” Second = %d”, i)的值即可,printf函数的返回值是函数在标准输出上输出的实际字符的个数,那么printf(” Second = %d”, i)永远不会为0,所以程序是个死循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: