我目前正在学习c,我对回归感到困惑:
for (int i = 0; i != r; i++) {
if (t[i] != (i + 1)) {
return i + 1;
}
}
在n为1的最后一次调用中的上述递归代码中,返回1将返回整数值1或执行中的错误,如main中所示。我有这种困惑,因为返回1在main和main函数调用的函数中被区别对待
答案 0 :(得分:1)
return 1
是否会返回整数值1或执行中的错误,例如main?
return 1
从声明返回1
的函数返回整数值int
,即使该函数恰好是{{1} }
来自int main()
的非零返回值是解释(由执行环境,例如shell),以指示执行中的错误。这恰好是main()
的返回值的语义。
答案 1 :(得分:0)
return语句将返回return语句的参数中的值,并且它必须是函数中声明的类型。价值的含义取决于解释。主函数的返回值可以解释为成功或错误代码。有时也在其他功能中。
答案 2 :(得分:0)
<trust level="Full" />
表示返回1 - 无论是return 1
函数还是其他任何函数。
函数的返回值的解释由调用函数完成。
在main
的情况下,由于代码中的任何函数都不应该调用它,因此将1解释为执行中的错误(或者更准确地说,可以做出)无论谁执行该程序。