【发布时间】:2013-09-22 16:33:40
【问题描述】:
学习 K&R C,这让我很困惑。
在这里,当我将return k 放入循环时,它不会打印出k。但是当我写printf("k :%d", k)时,它会打印一个k(初始条件)的值并退出,但不会打印returnk的值。
这让我对return 的作用感到困惑,如果它进入循环,它可以printf 将k 的值设为零,那么为什么不return k 以及为什么要退出循环呢?
int k;
for (k=0; k<5; ++k)
{
printf("k :%d\n",k);
return k;
}
输出:
k:0
它进入了循环,所以它一定是真的。那么return的值为什么不是k呢?
这是完整的程序:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int k;
for (k=0; k<5; ++k)
{
printf("k %d\n",k);
return k;
}
return EXIT_SUCCESS;
}
【问题讨论】:
-
K&R C 不是向自己介绍编程的好方法。 25 年前可能是,但现在不是。
-
它不会将k的值返回到哪里?你能给我们展示一下完整的程序吗?
-
您需要继续阅读 K&R 以了解 return 的作用。
-
return k会将k的值作为当前函数的返回值,在本例中为main。它与printf打印的内容无关。