【发布时间】:2014-11-15 01:15:20
【问题描述】:
当我运行此代码时,我得到的答案是 5,但我不明白它是如何工作的 以我自己的理解,这应该是一个无限循环 因为 number 的值在函数范围内永远不会改变 此函数的输出为 5,for 循环仅运行一次 我需要了解这里的条件是如何满足的。
#include <stdio.h>
int num=7;
int r();
int main()
{
for(r();r();r())
{
printf("%d",r());
return 0;
}
}
int r()
{
return num--;
}
【问题讨论】:
-
正确缩进/格式化代码,在循环内返回,根本不可能是无限的。
-
只有一个
num,而且肯定不止一个函数的作用域。 -
return 0;只是在到达时立即结束主函数,因此不会再次循环。 -
感谢您的建议,但我仍然对退货感到困惑。我已经阅读了一些答案“在内部函数(不是主函数)中返回将立即终止特定函数的执行,将给定的结果返回给调用函数。那么 retrun 在这里如何工作
-
“那么这里的 return 是如何工作的”——好吧,你刚刚解释过了。你不明白什么?