【笔记】C++的函数

前言

C++的函数学习笔记

函数的作用

  • 将一段经常使用的代码封装,减少重复的代码

函数的定义

有参数有返回值

1
2
3
4
5
6
返回值类型 函数名(参数列表)
{
...

return 返回值;
}

无参数有返回值

1
2
3
4
5
6
返回值类型 函数名()
{
...

return 返回值;
}

有参数无返回值

1
2
3
4
void 函数名(参数列表)
{
...
}

无参数无返回值

1
2
3
4
void 函数名()
{
...
}

函数的声明

  • 只声明函数,不初始化函数体,函数的声明需要放在函数的定义前
  • 在函数的声明的后面再次定义函数体
  • 函数的声明可以有多次,但函数的定义只能有一次
1
2
3
4
5
6
7
8
返回值类型 函数名(参数列表);

返回值类型 函数名(参数列表)
{
...

return 返回值;
}

函数的调用

1
返回值类型 返回值 = 函数名(参数);

参数的传递

值传递

  • 直接传递值,形参不会修饰实参
1
2
3
4
5
6
7
8
9
10
11
返回值类型 函数名(数据类型 形参名)
{
return 返回值;
}

int main()
{
数据类型 变量名 = 值;
函数名(变量名);
return 0;
}

地址传递

  • 传递地址,形参会修饰实参
1
2
3
4
5
6
7
8
9
10
11
返回值类型 函数名(数据类型 *形参名)
{
return 返回值;
}

int main()
{
数据类型 变量名 = 值;
函数名(&变量名);
return 0;
}

引用传递

  • 传递引用,形参会修饰实参
1
2
3
4
5
6
7
8
9
10
11
返回值类型 函数名(数据类型 &形参名)
{
return 返回值;
}

int main()
{
数据类型 变量名 = 值;
函数名(变量名);
return 0;
}

形参的默认值

1
2
3
4
返回值类型 函数名(数据类型 形参名 = 默认值)
{
return 返回值;
}
  • 注意事项
    • 如果某个形参有了默认值,其后面的形参也必须都有默认值
    • 函数的声明与函数的定义,只能有一个形参有默认参数

函数的占位参数

  • 调用函数的时候必须传递参数
1
2
3
4
返回值类型 函数名(数据类型)
{
return 返回值;
}

占位参数的默认参数

1
2
3
4
返回值类型 函数名(数据类型 = 默认值)
{
return 返回值;
}

函数的重载

  • 定义多个同名函数,函数的参数列表不同
  • 参数不同的满足条件:类型不同、个数不同、顺序不同
1
2
3
4
5
6
7
8
9
返回值类型 同名函数名()
{
return 返回值;
}

返回值类型 同名函数名(数据类型 形参名)
{
return 返回值;
}

函数的分文件编写

创建一个头文件

  • 创建一个.h结尾的头文件,用于写函数的声明
1
2
3
4
#include <iostream>
using namespace std;

返回值类型 函数名(参数列表);

创建一个源文件

  • 创建一个.cpp结尾的源文件,用于写函数的定义
  • 包含对应的头文件,引入自定义头文件时使用""
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
#include "头文件名.h"

返回值类型 函数名(参数列表)
{
...

return 返回值;
}

使用分文件编写的函数

  • 包含需要使用的函数的头文件
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
#include "头文件名.h"

int main()
{
函数名(参数);

return 0;
}

完成

参考文献

哔哩哔哩——黑马程序员