1 函数
1.1 概述
作用:将某些特定的功能封装起来,减少代码重复
1.2 函数的定义与调用
定义语法如下
返回值类型 函数名 (参数){
函数体语句
return 表达式
}
实现两个整数相加的函数
int add(int a, int b) {
//此处的a与b为形参
return a + b;
}
函数的调用
调用语法
函数名(参数列表)
int main() {
int a = 4, b = 5;
int c = add(a, b);//此处的a与b为实参
cout << c;
return 0;
}
1.3 值传递
- 函数调用时,将实参传入给形参
- 值传递时,如果形参改变,并不会影响实参
#include<iostream>
using namespace std;
//定义函数交换两个数
//如果不需要返回值,声明的时候可以写void
void swap(int num1, int num2) {
cout << "交换前的数字:" << endl;
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
//输出4,5
int t = num1;
num1 = num2;
num2 = t;
cout << "交换后的数字:" << endl;
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
//输出5,4
}
int main() {
int a = 4, b = 5;
//传入数值
swap(a, b);
cout << "a=" << a << endl;
cout << "b=" << b << endl;
//输出4,5
return 0;
}
1.4 函数的常见样式
- 有参数无返回值
- 有参数有返回值
- 无参数有返回值
- 无参数无返回值
1.5 函数的声明
作用:告诉编译器函数的名称以及如何调用函数,函数的实际主题可以单独定义。
#include<iostream>
using namespace std;
//提前告知编译器函数的存在
//声明可以有多次,定义只能有一次
int max(int num1, int num2);
int main() {
int a = 4, b = 5;
//传入数值
int c = max(a, b);
cout << "c=" << c << endl;
return 0;
}
//函数定义在主函数后面
//定义函数求两数的最大值
int max(int num1, int num2) {
return num1 > num2 ? num1 : num2;
}
1.6 函数的分文件编写
作用:让代码更清晰
步骤:
- 创建头文件(.h)
- 创建源文件(.cpp)
- 在头文件中写函数的声明
- 在源文件中写函数的定义
创建一个实现两整数之和的函数
创建以下两个文件
在add.h中进行声明
#pragma once
int add(int num1, int num2);
在add.cpp中进行定义
#include<iostream>
#include"add.h"//包含一下头文件
//双引号表示是自己写的头文件
using namespace std;
int add(int num1, int num2) {
return num1 + num2;
}
调用
#include<iostream>
#include"add.h"//包含一下头文件
using namespace std;
int main() {
int a = 4, b = 5;
//传入数值
int c = add(a, b);
cout << "c=" << c << endl;
return 0;
}