在非主函数中返回1

时间:2016-11-08 08:05:42

标签: c

我目前正在学习c,我对回归感到困惑:

for (int i = 0; i != r; i++) {
    if (t[i] != (i + 1)) {
        return i + 1;
    }
}

在n为1的最后一次调用中的上述递归代码中,返回1将返回整数值1或执行中的错误,如main中所示。我有这种困惑,因为返回1在main和main函数调用的函数中被区别对待

3 个答案:

答案 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解释为执行中的错误(或者更准确地说,可以做出)无论谁执行该程序。