作用:将一段经常使用的代码封装起来,减少重复代码。一个较大的程序,一般会有若干个模块实现特定的功能,就需要使用函数来实现。
1 函数的定义
定义一个函数需要包含几个部分:返回值类型、函数名、参数、函数体语句、return表达式。
//函数定义语法
返回值类型 函数名(参数列表)
{
函数体语句
return表达式
}
示例:定义一个加法函数,传入两个整型数据,计算相加的结果并返回。
//返回值类型--int
//函数名--add
//参数列表--(int num1,int num2)
//函数体语句:int sum = num1 + num2;
//return表达式--return sum;
int add(int num1,int num2)
{
int sum = num1 + num2;
return sum;
}
2 函数的调用
语法:函数名(参数);
示例:调用加法函数
#include <iostream>
using namespace std;
int add(int num1, int num2)//num1,num2无实际值,称为形参
{
int sum = num1 + num2;
return sum;
}
int main()
{
int a = 3;
int b = 8;
//调用加法函数,将实参传给形参,返回值再赋值给c
int c = add(a, b);//a,b称为实参
cout << "c=" << c << endl;
system("pause");
return 0;
}
3 值传递
值传递就是函数调用时实参将值传给形参。值传递时,形参发生改变并不会影响实参。
示例:
#include <iostream>
using namespace std;
void swap(int num1, int num2)//进行交换,但不返回任何值
{
cout << "交换前形参的值:" << endl;
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
int temp = num1;
num1 = num2;
num2 = temp;
cout << "交换后形参的值:" << endl;
cout << "num1=" << num1 << endl;
cout << "num2=" << num2 << endl;
return;
}
int main()
{
int a = 3;
int b = 8;
cout << "交换前实参的值:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
swap(a, b);
cout << "交换后实参的值:" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
return 0;
}
运行结果
交换前实参的值:
a=3
b=8
交换前形参的值:
num1=3
num2=8
交换后形参的值:
num1=8
num2=3
交换后实参的值:
a=3
b=8
4 函数声明
作用:提前告诉编译器有这个函数的存在。要放在main函数前。没有函数声明时,函数要写在main函数前头,否则会报错。
语法:返回值类型 函数名(参数列表);
与函数定义的语法区别在于去了花括号里的代码以及多了‘;’。