1. 函数的定义与调用
函数作用:
将一段经常使用的代码封装起来,减少代码重复,较大的程序,一般分为很多个程序块,每个模块实现特定的功能
- 函数的定义
函数定义几要素:
1、返回值类型
2、函数名;
3、参数列表;
4、函数体语句;
5、函数返回值(return表达式);
函数定义语法:
返回值类型 函数名(参数列表)
{
函数体语句;
return表达式;
}
- 函数的调用
函数调用语法:
函数名(参数列表);
- 代码演示
#include <iostream>
using namespace std;
//一个加法求和函数的定义,其中num1、num2并没有实际的值,只是一个形式参数。
int add(int num1, int num2)
{
int sum = num1 + num2;
return sum;
}
int main() {
//函数的调用,其中a、b为实际参数。当调用函数的时候,实参的值会传递给形参。
int a = 18;
int b = 28;
int c = add(a,b);
cout << "两个数求和后的结果为: " << c << endl;
a = 1998;
b = 2000;
c = add(a, b);
cout << "c = " << c << endl;
system("pause");
return 0;
}
- 结果实现
2. 函数的申明
函数申明的作用:
告诉编译器函数的名称以及如何调用函数,函数的主体可以单独进行定义。比如:在对函数进行调用之前,必须先对函数进行申明或者是定义,否则将会出现错误。
注意:
函数的申明可以出现多次,但是函数的定义不能够重复出现,只能出现一次
- 代码演示
#include <iostream>
using namespace std;
//函数申明
int add(int num1,int num2);
int main() {
int a = 8;
int b = 12;
int c = add(a,b);
cout << "c = " << c << endl;
system("pause");
return 0;
}
//函数定义
int add(int num1,int num2)
{
return num1 + num2;
}
- 输出结果
3. 函数的常见样式
函数的常见样式有下列四种:
------1、无参无返
------2、无参有返
------3、有参无返
------4、有参有返
- 代码演示
#include <iostream>
using namespace std;
//1、无参无返
void func1()
{
cout << "无参无返!" << endl;
}
//2、无参有返
int func2()
{
cout << "无参有返!" << endl;
return 1998;
}
//3、有参无返
void func3(int num1)
{
cout << "有参无返!" << num1 << endl;
}
//4、有参有返
int func4(int num1, int num2)
{
cout << "有参有返!" << endl;
return num1 + num2;
}
int main() {
//1、无参无返函数调用
func1();
//2、无参有返函数调用
int a = func2();
cout << a << endl;
//3、有参无返函数调用
int b = 10086;
func3(b);
//4、有参有返函数调用
int c = 10000;
int d = func4(b,c);
cout << d << endl;
system("pause");
return 0;
}
- 输出结果
4. 函数的值传递
值传递:
值传递就是指函数调用时将实参数值传递给形参
注意:
值传递时,如果形参发生改变,实参并不会受到影响
原因如下图:
- 代码演示
#include <iostream>
using namespace std;
//定义一个函数用来实现值的交换,如果函数无返回值则可以用void,此时也可以不用写return语句
void swap(int num1, int num2)
{
cout << "交换前:" << "num1 = " << num1 << " num2 = " << num2 << endl;
int temp = num1;
num1 = num2;
num2 = temp;
cout << "交换后:" << "num1 = " << num1 << " num2 = " << num2 << endl;
}
int main() {
int a = 1998;
int b = 2000;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
swap(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}
- 输出结果
5. 函数的分文件编写
作用:
让代码的结构更加清晰
实现:
- 创建
.h
的头文件,将函数的申明写入其中;- 创建
.cpp
的源文件,将函数的定义写入其中;
- 代码实现
swap.h
文件
#include <iostream>
using namespace std;
// 函数的申明
void swap(int num1, int num2);
swap.cpp
文件
#include "swap.h"
// 函数的定义
void swap(int num1,int num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
return;
}
主程序---函数的分文件编写.cpp
文件
#include <iostream>
using namespace std;
#include "swap.h"
int main() {
int a = 1998;
int b = 2022;
swap(a, b);
system("pause");
return 0;
}
- 输出结果