return在C函数中的作用,是不是return调用的变量的值?

Role of return in C functions, does it return the value of the variable called?

经过一些研究,由于 K & R 的“C 编程语言”第 1.7 章中的示例不是很清楚,我了解到 return 通常出现在每个函数的末尾,标记其结尾; 好像默认情况下,return的值为0,表示函数执行成功(具体是什么意思?)。 如果我们将 return 的值设置为我们调用的变量会发生什么? 例如,如果我写:

return p;

这是否意味着函数的最终值将是 p? 因此,例如,如果我从 main() 或另一个函数调用此函数,那么 main() 内的此函数的值会是 p 吗?

示例:

#include <stdio.h>

int power(int m, int n);
/* test power function */
int main(){
    
    int i;
    for(i = 0; i < 10; ++i)
        printf("%d %2d %3d", i, power(2,i), power(-3,i));
    return 0;
    }


int power(int base, int n)
{
    int i, p;
    p=1;

    for(i=1;i<=n;++i)
        p=p*base;

    return p;
}

这是否意味着当我在 main 中调用 power() 时它的值是 p

power 编辑的值 return 是 p 的值。

我们可能会简称为“power returned p”,但 p 的值是 returned。


函数没有值;函数 return 一个值。

p 不是一个值; p 是一个变量。

power计算的值return是return p求值时p的值。所以如果p的值是8,那么returned的值就是8.

以上程序将 returned 值传递给 printf 进行打印。


it seems that by default, the value of return is 0

函数没有默认 return 值。如果函数的 return 类型不是 void,则必须使用 return

main 是唯一的例外。 return 0main 的默认值。