最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C语言 函数参数说明 与 返回值
时间:2022-06-25 04:43:59 编辑:袖梨 来源:一聚教程网
C 语言是结构化语言,它的主要结构成分是函数。函数被作为一种构件,用以完成程序中的某个具体功能。函数允许一个程序的各个任务被分别定义和编码,使程序模块化。本章介绍 C 语言函数的设计,如何用函数分解程序的各个功能,如何使用函数构成模块化程序,以及代码复用的基本思想。
函数说明 与 返回值
函数的一般形式如下:
类型说明符 函数名(参数表)
参数说明段
{
函数体
}
1 函数的类型说明
函数的类型说明符可以是任何数据类型,包括空值型 void,即不使用 return 语句返回任何数据。默认情况下,函数被自动说明为整型。函数必须在第一调用前定义,这样编译器才能找到该函数。前置函数类型说明被称为 函数原型。
#include
#include
#define PI 3.141593
float cylinder_area(float, float); // 函数的类型说明,函数原型
int main()
{
float r, h, s; // r圆半径,h高,s面积
puts("请输入圆柱的半径和高:");
if (scanf("%f,%f", &r, &h) == 2)
{
s = cylinder_area(r, h); // 调用函数 cylinder_area(),返回值到变量s
printf("n该圆柱体的表面积为:%fn", s);
}
else
{
puts("您输入的数据格式不合法!");
}
return EXIT_SUCCESS;
}
float cylinder_area(float r, float h)
{
float cd_area;
cd_area = 2 * (PI * r * r) + (2 * PI * r * h);
return cd_area;
}
设计函数时需要注意数据类型的匹配关系,函数的类型说明符必须与 return 语句返回的数据类型相同,函数的参数说明必须与参数的数据类型相同,否则会造成编译错误。
2 返回语句
函数的返回语句 return 有 2 个作用:其一,结束当前函数,调用者获得程序控制权;其二,将计算结果传递给调用者。
函数的结束有 2 种情况,一是函数体内所有的代码执行完毕,二是 return 语句被执行。
C语言函数的参数和返回值
函数的参数
函数的参数分为形参和实参。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在函数调用中。
形参和实参的功能是作数据传送,发生函数调用时,实参的值会传送给形参。
形参和实参有以下几个特点:
1) 形参变量只有在函数被调用时才分配内存单元,在调用结束时,立刻释放所分配的内存单元。因此,形参只有在函数内部有效,不能在函数外部使用。
2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。
函数调用中发生的数据传送是单向的,只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
【示例】计算 1+2+3+...+(n-1)+n 的值。
#include
int sum(int n){
int i;
for(i=n-1; i>=1; i--){
n+=i;
}
printf("The inner n = %dn",n);
return n;
}
int main(){
int n, total;
printf("Input a number: ");
scanf("%d",&n);
total = sum(n);
printf("The outer n = %d n", n);
printf("1+2+3+...+(n-1)+n = %dn", total);
return 0;
}
运行结果:
Input a number: 100?
The inner n = 5050
The outer n = 100
1+2+3+. ..+(n-l)+n = 5050
通过 scanf 输入 n 的值,作为实参,在调用 sum 时传送给形参量 n。
注意:本例中形参变量和实参变量的名称都是 n,但这是两个不同的量,各自的作用域不同,下节将会讲解。
在mian函数中用printf 语句输出一次n值,这个n值是实参n的值。在函数sum中也用printf 语句输出了一次n值,这个n值是形参最后取得的n值。
从运行情况看,输入n值为100,即实参n的值为100,把此值传给函数sum时,形参n的初值也为100,在执行函数过程中,形参n的值变为5050。函数运行结束后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。
函数的返回值
函数的值(或称函数返回值)是指函数被调用之后,执行函数体中的程序段所取得的值,可以通过return语句返回。
return语句的一般形式为:
return 表达式;
或者:
return (表达式);
例如:
return max;
return a+b;
return (100+200);
函数中可以有多个 return 语句,但每次调用只能有一个return 语句被执行,所以只有一个返回值。
一旦遇到 return 语句,不管后面有没有代码,函数立即运行结束,将值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始终 a+b 的值,也就是300。
没有返回值的函数为空类型,用void进行说明。例如:
void func(){
printf("Hello world!n");
}
一旦函数的类型被定义为 void,就不能再接受它的值了。例如,下面的语句是错误的:
int a = func();
为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型。
相关文章
- 《尼尔:机械纪元》武器黑之倨傲属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》机械生命体的枪获得方法介绍 11-15
- 《尼尔:机械纪元》武器机械生命体的枪属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》天使之圣翼获得方法介绍 11-15
- 《尼尔:机械纪元》武器天使之圣翼属性及特殊能力介绍 11-15
- 《尼尔:机械纪元》武器恶魔之秽牙属性及特殊能力介绍 11-15