在C函数中返回的角色,它是否返回被调用变量的值?



经过一番研究,由于在《C程序设计语言》第1.7章中的例子不是很清楚K &R,我知道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返回的值为p的值

我们可以说"power返回p",但是返回的是p的值


函数没有值;函数返回一个值。

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

power返回的值是计算return pp的值。因此,如果p的值为8,则返回值为8

上面的程序将返回值传递给printf进行打印。


似乎默认返回值是0

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

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