1、概述
作用:
- 将一段经常使用的代码封装起来,以减少代码的重复
- 将一个大型的程序分解为多个小的程序段,每个模块实现特定的功能
2、函数的定义
函数的组成:
1. 返回值类型
2. 函数名
3. 参数列表
4. 函数体语句
5. return 返回值
函数的基本语法:
返回值类型 函数名 (参数列表)
{
函数体语句
return 表达式
}
备注:并不是所有的都是必要的
示例:
int add(int num1, int num2)//有参数,有返回值
{
int sum = num1 + num2;
return sum;
}
void print()//无参数,无返回值
{
cout << "hello world";
}
void f(int a)//有参数,无返回值
{
cout << a << endl;
}
int add()//无参数,有返回值
{
int num1=10;//这里需要给与初值,否则会出现使用未初始化的变量的错误
int num2=20;
int sum = num1 + num2;
return sum;
}
3、函数的调用
- 功能:使用定义好的函数
- 语法:函数名(参数)
int add(int num1, int num2)//定义好的函数
{
int sum = num1 + num2;
return sum;
}
int sum=add(10, 20);//使用定义好的函数
4、值传递
- 所谓值传递,就是函数调用时实参将数值传入形参
- 值传递时,如果形参发生改变,并不会影响实参的值
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;
}
int a = 10;
int b = 20;
swap(a, b);
cout << "实参中的值:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
5、函数的声明
作用:告诉编译器函数名称以及如何调用函数,函数的实际主体可以单独定义。
- 现在版本的编译器,不在main函数中声明,也不会报错,但是函数的调用不能执行。
int main()
{
int a = 10;
int b = 20;
swap(a, b);
cout << "实参中的值:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
/*int sum=add(10, 20);
cout << "sum=" << sum << endl;*/
system("pause");
return 0;
}
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;
}
注意:函数的声明可以多次,函数的定义只能有一次
6、函数的分文件编写
作用:使得代码结构更加清晰
步骤:
- 创建.h的头文件
#pragma once//防止头文件重复
#include<iostream>//给出输入输出流
using namespace std;//给出标准命名空间
- 创建.cpp 的源文件
#include"add.h"
- 在头文件中写函数的声明
int add(int num1, int num2);
- 在源文件中写函数的定义
int add(int num1, int num2)
{
int sum = num1 + num2;
return sum;
}