函数
1. 函数声明
简单地,函数声明可以有以下形式:返回类型 标识符 ( 形式参数列表 )
其中,如果这个函数不返回任何东西,则 返回类型
的位置填 void
;如果不接受参数,形式参数列表(以下简称 形参列表)里面填 void
。
例如,要编写一个函数 say_hello()
,让它在屏幕上输出一段话(这个函数既不接受参数,也不返回值):
c
void say_hello(void) {
puts("Hello, World!");
}
1
2
3
2
3
例如,编写一个函数 print_add()
,让它在屏幕上输出两个数的和(这个函数接受两个参数,不返回值):
c
void print_add(double a, double b) {
printf("%g + %g = %g\n", a, b, a + b);
}
1
2
3
2
3
例如,编写一个函数 add()
,让它返回两个数的和(这个函数接受两个参数,返回一个值):
c
double add(double a, double b) {
return a + b;
}
1
2
3
2
3
2. 函数调用
使用 函数名 ( 实际参数列表 )
的形式调用函数。每个实际参数会替换对应位置上的形式参数。
当函数的形参列表为空的时候,实际参数列表(以下简称实参列表)什么都不填。
例如,调用 say_hello()
:
c
#include <stdio.h>
void say_hello(void) {
puts("Hello, World!\n");
}
int main(void){
say_hello();
say_hello();
say_hello();
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
运行结果:
txt
Hello, World!
Hello, World!
Hello, World!
1
2
3
2
3
例如,调用 print_add()
:
c
#include <stdio.h>
void print_add(double a, double b) {
printf("%g + %g = %g\n", a, b, a + b);
}
int main(void){
print_add(1.2, 2.3);
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
运行结果:
txt
1.2 + 2.3 = 3.5
1
例如,调用 print_add()
和 add()
:
c
#include <stdio.h>
double add(double a, double b) {
return a + b;
}
void print_add(double a, double b) {
printf("%g + %g = %g\n", a, b, a + b);
}
int main(void){
print_add(add(3.5, 7.4), add(4.5, 4.4));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
add(3.5, 7.4)
返回 10.9,add(4.5, 4.4)
返回 8.9。如同调用 print_add(10.9, 8.9)
,会输出:
txt
10.9 + 8.9 = 19.8
1
习题
- 编写函数
void fill_area(char ch, int width, int height)
,实现功能:打印ch
字符height
行width
列。