函数作用
将经常使用的代码封装起来,减少重复代码
函数定义
C++ 中的函数定义的一般形式如下:
return_type function_name( parameter list ) { body of the function }
在 C++ 中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
- 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
- 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
- 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
- 函数主体:函数主体包含一组定义函数执行任务的语句。
//求两数之和的函数 int sum(int a, int b) { return a + b; }
函数声明
函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。函数的声明可以有多个但是声明只有一个,针对上面定义的函数 sum(),以下是函数声明:int sum(int num1, int num2);
在函数声明中,参数的名称并不重要,只有参数的类型是必需的,因此下面也是有效的声明:int sum(int, int);
函数调用
#include <iostream> using namespace std; //函数声明 int sum(int m1,int m2); int main() { int ret = sum(1, 2); cout << ret; } //求两数之和的函数 int sum(int a, int b) { return a + b; }
函数值传递
#include <iostream> using namespace std; //函数声明 void swap(int m1,int m2); int main() { int a = 1; int b = 2; //当做函数的值传递时候,函数的形参发生变化不会影响实参 swap(a, b); cout << a;//1 cout << b;//2 } //交换 void swap(int a, int b) { int temp = b; b = a; a = temp; cout << a;//2 cout << b;//1 }
函数常见的样式
无参无返
无参有返
有参无返
有参有返
函数的分文件书写
为了代码简介复用,有时将函数份文件书写,项目结构
第一步创建后缀名是.h的头文件并声明函数
#include <iostream> using namespace std; //函数声明 void swap(int m1, int m2);
第二步创建后缀名是.cpp的源文件,并定义函数
#include <iostream> #include "sum.h"//要引用头文件 using namespace std; //交换 void swap(int a, int b) { int temp = b; b = a; a = temp; cout << a;//2 cout << b;//1 }
第三步使用
#include <iostream> #include "sum.h"//应用swap函数所在的头文件 using namespace std; //函数声明 void swap(int m1,int m2); int main() { int a = 1; int b = 2; swap(a, b); cout << a;//1 cout << b;//2 }