学习 K&R C,这让我很困惑。
在这里,当我输入return k
时在循环内部,它不会打印出 k
。但是当我写 printf("k :%d", k)
,它打印 k
的一个值(初始条件)并退出,但不 return
k
的值.
这让我很困惑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;
}
最佳答案
它“输出”零作为发送到 shell 的退出状态代码。
EXIT_SUCCESS
只是 0 的同义词。return k
和 return EXIT_SUCCESS
正在做同样的事情。
要查看输出,您需要运行具有可观察效果的子例程,例如 printf
。
return
是流程控制语句,而不是子例程。它退出当前函数并将计算机的控制权“返回”给调用函数。在这种情况下,这会导致程序终止。
关于c - 这里 printf 和 return 之间的区别令人困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863375/