1.函数的形参
“形式参数”即形参是在函数定义时使用的参数,目的是用来接收调用该函数时传递的数据(实际参数)。如:“float max(int x,int y)”中的x,y是函数max()的形参;“float funy(float x)”中的x是函数funy()的形参。
函数形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。形参是在函数首部定义的,定义的方式与变量定义不同,一是定义的位置不同,形参在函数首部定义,变量是在函数体上部定义;二是定义的方式不同,形参定义时每个形参都要有类型说明符,变量定义时,多个变量可共用一个类型说明符。
2.函数的返回值
函数被调用(执行)后将返回一个值到调用函数处,函数的值类似于数学上的函数值。函数也可以没有返回值,函数有没有返回值取决于函数定义时的类型,若类型为void类型,则表示函数无返回值,否则有返回值。函数返回一个什么值取决于函数体中return语句中的表达式,下面先介绍一下return语句。
return语句的一般格式:
格式1:return;
格式2:return表达式;或return(表达式);
功能:执行格式1的return语句时,将结束函数的执行,返回到调用处继续执行程序。执行格式2的return语句时,不仅结束函数的执行,还将表达式的值带回到调用处作为函数的返回值。
一般情况下,格式1的return语句用在无返回值的函数中,作为函数的出口[(见例6.5(1)],也可以多处使用return语句,设置多个出口[见例6.5(2)],执行到哪个,哪个就起作用。也可以没有return语句,当函数执行完函数体的所有语句时,会自动结束函数的执行,返回到调用处,一般不建议省略return语句。
格式2的return语句用在有返回值的函数中,表达式的类型和函数的类型要一致,否则向函数的类型转换。有返回值的函数中没有return语句或有return语句没有表达式都是错误的。
【例6.5】无返回值函数示例。
(1)打印一行星号的函数。
程序内容如下:
1 void funa(int n)
2 {
3 int i;
4 for(i=1;i<=n;i++)
5 putchar(′*′);
6 putchar(′\n′);
7 }
(2)若一个数不能被3、5、7整除,则输出该数。
程序内容如下:
1 void funb(int n)
2 {
3 if(n%3==0) return;
4 if(n%5==0) return;
5 if(n%7==0) return;
6 printf("%d\n",n);
7 }
【例6.6】定义判断一个数是否为素数的函数。
程序内容如下。
参考函数1:(www.xing528.com)
1 int fun1(int n)
2 {
3 int i,a;
4 a=1;
5 for(i=2;i<=n-1;i++)
6 if(n%i==0)
7 {a=0;
8 break;
9 }
10 return(a);
11 }
参考函数2:
1 int fun2(int n)
2 {
3 int i;
4 for(i=2;i<=n-1;i++)
5 if(n%i==0)
6 break;
7 return(i<=n-1);
8 }
请思考一下,函数的返回值与n是否是素数的关系。此处,可将i<=n-1改成i<n。
参考函数3:
1 int fun(int n)
2 {
3 int i;
4 for(i=2;i<=n-1;i++)
5 if(n%i==0)
6 return(0);
7 return(1);
8 }
也请注意该函数返回值与n是不是素数的关系。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。