一 函数
1.1 函数的定义
函数的定义有五个部分
返回值类型 函数名 (参数列表)
{
函数体语句
return表达式
}
案例:定义一个实现加法的函数,有返回值
//函数定义
int add(int num1, int num2)//有返回值
{
int sum = num1 + num2;
return sum;
}
案例:定义一个实现两个变量值互换的函数,无返回值
void swap(int * p1, int * p2)//无返回值
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
1.2 函数的调用
语法:函数名(参数)
//函数定义
int add(int num1, int num2) //定义中的num1,num2称为形式参数,简称形参
{
int sum = num1 + num2;
return sum;
}
int main() {
int a = 10;
int b = 10;
//调用add函数
int sum = add(a, b);//调用时的a,b称为实际参数,简称实参
cout << "sum = " << sum << endl;
a = 100;
b = 100;
sum = add(a, b);
cout << "sum = " << sum << endl;
system("pause");
return 0;
}
1.3 函数的常见样式
- 无参无返
- 有参无返
- 无参有返
- 有参有返
//函数常见样式
//1、 无参无返
void test01()
{
//void a = 10; //无类型不可以创建变量,原因无法分配内存
cout << "this is test01" << endl;
//test01(); 函数调用
}
//2、 有参无返
void test02(int a)
{
cout << "this is test02" << endl;
cout << "a = " << a << endl;
}
//3、无参有返
int test03()
{
cout << "this is test03 " << endl;
return 10;
}
//4、有参有返
int test04(int a, int b)
{
cout << "this is test04 " << endl;
int sum = a + b;
return sum;
}
1.4 函数的声明
调用函数,函数的定义应该在main函数之前,函数的定义在main函数之后,前面须进行函数的声明,函数的声明可以多次,但是函数的定义只能有一次。
#include<iostream>
using namespace std;
//值传递
//声明可以多次,定义只能一次
//声明
int max1(int a, int b);
int max1(int a, int b);
//定义
int main() {
int a = 100;
int b = 200;
cout << max1(a, b) << endl;
system("pause");
return 0;
}
int max1(int a, int b)
{
return a > b ? a : b;
}
1.5 函数的分文件编写
- 创建后缀名为.h的头文件
- 创建后缀名为.cpp的源文件
- 在头文件中写函数的声明
- 在源文件中写函数的定义
最后,在源文件和主程序源文件中,都需要包含.h头文件。
//swap.h文件
#include<iostream>
using namespace std;
//实现两个数字交换的函数声明
void swap(int a, int b);
//swap.cpp文件
#include "swap.h"
void swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
//main函数文件
#include "swap.h"
int main() {
int a = 100;
int b = 200;
swap(a, b);
system("pause");
return 0;
}