前面四节我们写的代码都集中在main函数里。随着程序变复杂,所有逻辑堆在一起会越来越难维护。函数就是用来解决这个问题的——它把一段代码「打包」起来,取个名字,需要的时候调用就行。
1. 为什么需要函数
假设你需要在程序的不同地方打印一行分隔线:
cout<<"===================="<<endl;你可以每次都写一遍,但如果以后想把=换成-,就得改好几处。用函数只需要改一个地方:
voidprintLine(){cout<<"===================="<<endl;}函数的好处:
- 复用:写一次,到处调用
- 可读:给代码段取个有意义的名字
- 易维护:修改逻辑只需改一处
2. 函数的基本结构
返回类型 函数名(参数列表){函数体;return返回值;// 如果返回类型不是 void}各部分含义:
- 返回类型:函数执行完返回什么类型的值,
void表示不返回 - 函数名:给函数取的名字,命名规则和变量一样
- 参数列表:函数接收的输入,可以有多个,也可以没有
- 函数体:函数要执行的代码
- return:返回结果,
void函数可以省略
3. 无参数无返回值
最简单的函数,什么都不接收,也不返回:
#include<iostream>usingnamespacestd;voidsayHello(){cout<<"Hello, World!"<<endl;}intmain(){sayHello();// 调用函数sayHello();// 可以反复调用return0;}输出结果:
Hello, World! Hello, World!4. 有参数的函数
参数让函数能处理不同的数据:
#include<iostream>usingnamespacestd;voidgreet(string name){cout<<"你好,"<<name<<"!"<<endl;}intmain(){greet("小明");greet("小红");