经过一番研究,由于在《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 p
时p
的值。因此,如果p
的值为8
,则返回值为8
。
上面的程序将返回值传递给printf
进行打印。
似乎默认返回值是
0
函数没有默认返回值。如果函数的返回类型不是void
,则必须使用return
。
main
是唯一的例外。main
默认为return 0
。