函数的定义
语法:返回值类型 函数名 (参数列表) {函数体 return表达式}
#include <iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int func(int a, int b) {
return a + b;
}
int main() {
int a, b;
cin >> a >> b;
cout << func(a, b);
}
- 定义的时候,参数列表的参数叫做形参,调用函数的时候传入的参数,叫做实参.调用函数的时候,实参的值传递给形参.
- 形参可以理解为实参的复制体,在函数内对形参的操作不会影响实参的值
- 如果函数不需要返回值,返回值类型写
void
4.参数列表也可以为空
#include <iostream>
#include<iomanip>
#include<cmath>
using namespace std;
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int a, b;
cin >> a >> b;
swap(a, b);
cout << a << endl;
cout << b << endl;
}
函数的样式
- 无参无返
- 有参无返
- 无参有返
- 有参有返
函数的声明
函数可以多次声明,但是只能定义一次
#include <iostream>
using namespace std;
int max_num(int a, int b);
int max_num(int a, int b);
int main() {
int a, b;
cin >> a >> b;
cout << max_num(a, b) << endl;
}
int max_num(int a, int b) {
return a > b ? a : b;
}
把函数的定义放在主函数之后.可以让代码更清晰明了.声明的函数和定义的函数必须返回值和参数相同.
函数的分文件编写
函数分文件编写一般有4个步骤
- 创建后缀名为.h的头文件
- 创建后缀名为.cpp的源文件
- 在头文件中写函数的声明
- 在源文件中写函数的定义
下面是func.h头文件的内容
#pragma once
#include <iostream>
using namespace std;
int add(int a, int b);
下面是func.cpp文件的内容
#include <iostream>
using namespace std;
int add(int a, int b)
{
return a + b;
}
下面是主程序main.cpp文件的内容
#include <iostream>
#include "func.h"
using namespace std;
int main() {
int a=0,b=0;
cin >> a >> b;
cout << add(a, b) << endl;
}
在包含自己编写的头文件时不使用< >而是使用" "