函数的基本用法
1、学习目标
- 掌握函数的基本用法
- 总结与思考
2、函数的说明
-
函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
-
一般形式如下:
<数据类型> <函数名称> (<形式参数说明>) {
语句序列;
return[(<表达式>)];
}
-
<数据类型>是整个函数的返回值类型。
return[(表达式)]语句中表达式的值,要和函数的<数据类型>保持一致。如无返回值应该写为void型。
-
<形式参数说明>是逗号“,”分隔的多个变量的说明形式
-
大括弧对{<语句序列>},称为函数体;<语句序列>是大于等于零个语句构成的。
-
-
函数的说明就是指函数原型
-
其中,<形式参数说明>可以缺省说明的变量名称,但类型不能缺省。
-
例如:
double Power(double x, int n);
double Power(double, int);
-
-
函数的使用也叫函数的调用,形式如下:
- 函数名称(<实际参数>)
- 实参就是在使用函数时,调用函数传递给被调用函数的数据,需要确切的数据。
- 函数调用可以作为一个运算量出现在表达式中,也可以单独形成一个语句,对于无返回值的函数来讲,只能形成一个函数调用语句。
-
编写一个函数显示"Hello,everone!",然后编写主程序main调用它。
#include <stdio.h> void show() { printf("Hello everyone!\n"); } int main() { printf("start----\n"); show(); printf("end---\n"); return 0; }
运行结果:main函数为函数入口,调用函数show()
$ ./app start---- Hello everyone! end---
3、程序举例
-
定义求X^n值的函数(X为实数,n为正整数)
#include <stdio.h> double power(double x, int n) { double r = 1; int i; for(i = 1; i <= n; i++) r *= x; return r; } int main() { double x, ret; int n; printf("input:"); scanf("%lf%d", &x, &n); ret = power(x, n); printf("%lf %d = %lf\n", x, n, ret); return 0; }
运行结果:
$ ./app input:2 3 2.000000 3 = 8.000000
4、总结与思考
-
主要介绍函数的基础知识,包括函数的概念,函数的说明及函数的使用。
-
思考:
-
什么叫函数的说明,如何进行函数的说明?
函数要先说明再实现最后再调用
double power(double x, int n)//函数的说明 { //函数的实现 double r = 1; int i; for(i = 1; i <= n; i++) r *= x; return r; }
另一种书写形式:声明和实现时要注意变量的类型一致
#include <stdio.h> double power(double x, int n);//说明,此处的x和n可以省略 int main() { double x, ret; int n; printf("input:"); scanf("%lf%d", &x, &n); ret = power(x, n);//调用 printf("%lf %d = %lf\n", x, n, ret); return 0; } //实现 double power(double x, int n) { double r = 1; int i; for(i = 1; i <= n; i++) r *= x; return r; }
-
使用库函数时,为什么引入头文件,有没有别的替代写法?
头文件中有函数说明,使程序比较简单、简洁。有其他的替代写法,但是相对来说比较复杂。
编译:gcc -E power2.c -o power2.i
可以展示出头文件内容
-