作用:将一段经常使用的代码封装起来,减少重复代码
1.函数的定义
函数的定义一般主要有5个步骤:
返回值类型;
函数名;
参数列表;
函数体语句;
return表达式。
语法:
返回值类型 函数名 (参数列表)
{
函数体语句
return表达式
}
2.函数的调用
语法:函数名 (参数)
调用时,参数为实际参数,也叫实参;定义时,参数为形式上的参数,也叫形参。当调用函数时,实参的值会传递给形参。
3.值传递
值传递:函数调用时实参将数值传入给形参
值传递时,如果形参发生变化,并不会影响实参
//如果函数不需要返回值,声明的时候可以写void无类型
void swap(int num1, int num2)
{
cout << "交换前:" << endl;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
int temp = num1;
num1 = num2;
num2 = temp;
cout << "交换后:" << endl;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
return;//返回值不需要的时候,可以只写return,也可以不写
}
int main()
{
int a = 10;
int b = 20;
swap(a, b);
//此时,a和b的值并没有改变,形参发生改变,不会影响实参
}
4.函数的常见样式
常见的函数样式有4种:无参无返、有参无返、无参有返、有参有返
5.函数的声明
作用:告诉编译器函数名称以及如何调用函数。函数的实际主体可以单独定义。
函数的声明可以多次,但是函数的定义只能有一次。
因为代码是一行一行执行的,所以需要先定义函数,才可以调用函数,否则会报错。但可以提前告诉编译器函数的存在,即函数的声明,然后再先调用函数,后定义函数。
//函数的声明
int max(int a, int b);
//主函数
int main()
{
int a = 10;
int b = 20;
cout << max(a, b) << endl;
system("pause");
return 0;
}
//函数的定义
int max(int a, int b)
{
return a > b ? a : b;
}
6.函数的分文件撰写
步骤如下:
①创建一个后缀名为.h的头文件
②创建后缀名为.cpp的源文件
③在头文件中写函数的声明
④在源文件中写函数的定义
⑤在源文件中加代码#include "xxx.h"
,其中“”表示这是自己创建的;在头文件中加代码
#include <iostream>
using namespace std;
PS.在别的cpp函数中想使用这个函数的时候,直接加一个#include "xxx.h"
即可。