【发布时间】:2017-10-13 05:38:12
【问题描述】:
在下面的代码中,会有什么返回吗?
#include <stdio.h>
int try_this (int in);
int main (void)
{
try_this (5);
}
int try_this (int in)
{
int i = 1;
for (i = 0; i < in; i = i + 2) {
return i;
}
return i;
}
既然 for 循环中有一个 return,那么代码会不会因为调用函数后什么都没有返回而什么都不返回?或者我会以数字形式返回,比如 1(因为 try_this 中的声明)或 6(因为循环)? 谢谢!!:)
【问题讨论】:
-
Umm...函数名为
try_this。我认为你应该这样做。 -
每次返回
0 -
一旦你到达你的第一个
return,函数就会返回指定的值并且函数栈被销毁(释放回系统)。 ...并且您的编译器应该向您尖叫function main is type int,因此应该返回一个值(例如return try_this(5);)。始终在编译字符串中至少使用-Wall -Wextra进行编译,并且在编译时没有任何警告之前不要接受代码。 -
它会返回0,但是你没有使用main中的返回值。
-
for循环的初始条件将i设置为0。第一次迭代,i等于0,将命中return i。因此该函数将始终返回0。
标签: c function for-loop return