目录
一、概述
作用:将一段经常使用的代码封装,减少代码重复。
二、定义
组成部分:
- 返回值类型
- 函数名
- 参数
- 函数体
- return表达式
参数和返回值可以没有,无返回值的返回值类型为void。
函数的调用:
函数名(参数);
语法:
返回值数据类型 函数名(参数) {
函数体;
return表达式;
}
示例:设计一个相加的函数,并调用函数输出结果。
#include<iostream>
using namespace std;
int add(int num1, int num2) {
int sum;
sum = num1 + num2;
return sum;
}
int main(){
cout << add(1, 2) << endl;//得到结果为3.
system("pause");
return 0;
}
三、函数的值传递
- 值传递:函数调用时实参将数值传给形参。
- 值传递时,形式参数发生改变不会影响实际参数。
实例:设计互换数字的函数,探究形参和实参是否相互影响。
#include<iostream>
using namespace std;
void swap(int a, int b) {
//交换前的数据
cout << "交换前:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
int mid;
mid = a;
a = b;
b = mid;
//交换后的数据
cout << "交换后:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
int main(){
int A = 1;
int B = 2;
swap(A, B);
cout << "交换后:" << endl;
cout << "A=" << A << endl;
cout << "B=" << B << endl;
system("pause");
return 0;
}
结果如图:
四、函数声明
作用:告知编译器函数的存在,可以将函数主体部分定义在后部分。
注意:声明可以有多次,但只能定义一次。
语法:返回值类型 函数名(参数);
以前面的相加函数为实例:
#include<iostream>
using namespace std;
//声明
int add(int num1, int num2);
int add(int num1, int num2);
int main() {
cout << add(1, 2) << endl;//得到结果为3.
system("pause");
return 0;
}
int add(int num1, int num2) {
int sum;
sum = num1 + num2;
return sum;
}
五、函数分文件编写
作用:让代码的结构更加清晰。
步骤:
- 创建后缀为.h的头文件。
- 创建后缀名为.cpp的源文件。
- 在头文件中写函数的声明。
- 在源文件中写函数的定义
示例:将上面相加函数使用分文件编写包装并使用。
//声明
int add(int num1, int num2);
在"add.h"头文件中写入声明,当函数定义需要用到其他头文件时需要在该头文件载入,比如<iostream>
#include "add.h"
//函数的定义
int add(int num1, int num2) {
int sum;
sum = num1 + num2;
return sum;
}
在add.cpp源文件中包含入所关联的头文件并写入函数定义。
#include<iostream>
using namespace std;
#include "add.h"
int main() {
cout << add(1, 2) << endl;//得到结果为3.
system("pause");
return 0;
}
在主函数包含入add.h头文件,即可使用add函数。