十、函数
(1)函数的定义
作用:将一段经常使用的代码封装起来,减少重复代码。
组成:
1.返回值类型:一个函数可以返回一个值。
2.函数名:函数的名称。
3.参数列:使用函数时,传入的数据。
4.函数体语句:花括号内的代码,函数内需要执行的语句,用户代码。
5.return表达式:和返回值类型匹配。函数执行完后,返回相应数据。
参考视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=4205594350351753444
已投币三连,非常好的视频教程,感谢up主的奉献。
语法:
返回值类型 函数名 (参数列表)
{
函数体语句
return表达式
}
int add (int num1, int num2)
{
int sum = num1 + num2;
return sum;
}
int main(){
/* 用户代码段 */
// ...
// ...
system("pause");
return 0;
}
(2)函数的调用,形参,实参
#include <iostream>
using namespace std;
// 函数定义
int add(int num1, int num2) // int num1, int num2为形式参数,简称形参
{
int sum = num1 + num2;
return sum;
}
int main() {
// a,b称为 实际参数,简称实参
int a = 11, b = 23;
// 调用add函数
int sum = add(a, b);
cout << "a + b = " << sum << endl;
system("pause");
return 0;
}
------------------------------------------------------------------------
a + b = 34
请按任意键继续. . .
(3)值传递
要点:实参传递给形参后,形参的改变不会影响到实测。
#include <iostream>
using namespace std;
// 函数定义
int test1(int num1, int num2)
{
cout << "输入的 num1 = " << num1 << endl;
cout << "输入的 num2 = " << num2 << endl;
cout << endl;
num1 += 10;
num2 += 20;
cout << "输出的 num1 = " << num1 << endl;
cout << "输出的 num2 = " << num2 << endl;
cout << endl;
return 0;
}
int main() {
// a,b称为 实际参数,简称实参
int a = 11, b = 23;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << endl;
// 调用add函数
test1(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << endl;
system("pause");
return 0;
}
----------------------------------------------------------------------
a = 11
b = 23
输入的 num1 = 11
输入的 num2 = 23
输出的 num1 = 21
输出的 num2 = 43
a = 11
b = 23
请按任意键继续. . .
(4)函数的常见样式
常见的函数样式有4种:
1.无参无返
2.有参无返
3.无参有返
4.有参有返
(5)函数的声明
作用:告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
注意:函数的声明可以多次,但是函数的定义只能有一次。
#include <iostream>
using namespace std;
// 函数的声明
int test1(int num1, int num2);
int main() {
// a,b称为 实际参数,简称实参
int a = 11, b = 23;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << endl;
// 调用add函数
int max = test1(a, b);
cout << "较大值 = " << max << endl;
system("pause");
return 0;
}
// 函数定义
int test1(int num1, int num2)
{
return num1 > num2 ? num1 : num2;
}
------------------------------------------------------------------
a = 11
b = 23
较大值 = 23
请按任意键继续. . .
(6)函数的分文件编写
函数太多,不能写同一个文件中。而且功能混淆,不便于梳理、阅读、移植。
作用:让代码结构更加清晰。
函数的分文件编写一般有4个步骤:
1.创建后缀名为.h的头文件
2.创建后缀名为.cpp的源文件
3.在头文件中写函数的声明
4.在源文件中写函数的定义
将(5)的代码分文件编写:
demo.cpp
#include <iostream>
using namespace std;
#include "swap.h"
int main() {
// a,b称为 实际参数,简称实参
int a = 11, b = 23;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << endl;
// 调用add函数
int max = swap(a, b);
cout << "较大值 = " << max << endl;
system("pause");
return 0;
}
swap.cpp
#include "swap.h"
// 函数定义
int swap(int num1, int num2)
{
return num1 > num2 ? num1 : num2;
}
swap.h
#include <iostream>
using namespace std;
// 函数的声明
int swap(int num1, int num2);