重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没有返回值的函数通常用来做一些数据的修改或实现些内部功能。而有返回值的函数通常作用为数据存储。当然实际上没有那么明显的界限,只是你要知道没返回值的函数一样有意义
为吴川等地区用户提供了全套网页设计制作服务,及吴川网站建设行业解决方案。主营业务为成都网站制作、网站建设、吴川网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
递归函数myPower的定义有逻辑错误,改成:
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
如果改成这样,会更高效:
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
例子1
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
int main()
{
int a=2,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
例子2
#include stdio.h
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
int main()
{
int a=3,b;
for(b=0;b11;b++)
printf("%lf\n",myPower(a,b));
return 0;
}
很正常啊,没有返回值,就是不需要返回值。
比如:定义一个函数,在函数中打印信息到屏幕上。
void displayMessage(char *msg) {
#ifdef NEED_DEBUG
printf("%s\n", msg);
#endif
}
很显然,调用这个函数,我不需要知道信息是不是已经打印到屏幕上了。(只有调试程序,才需要显示信息)
有很多类似的场景,比如:某个程序,根据给定的参数,在屏幕上绘制完成一个图像,而调用者不关心图像是不是绘得正确,因为正确与否不影响程序的继续执行。