一、函数概念
一个C++程序无论大小,由一个或多个函数构成,而且其中有且仅有一个主函数main(),主函数可以调用其他函数,其他函数也可以相互调用。同一个函数可以被一个或多个函数多次调用。
在创建函数时,必须编写其定义。所有函数定义包括以下组成部分:
- 名称:每个函数都必须有一个名称。通常,适用于变量名称的规则同样也适用于函数名称。
- 形参列表:调用函数的程序模块可以向其发送数据。形参列表是保存传递给函数的值的变量列表。如果没有值传递给函数,则其形参列表为空。
- 主体:函数的主体是处理函数正在执行的任务的一组语句。这些语句包含在一组大括号中。
- 返回类型:函数可以将值发送回调用它的程序模块。返回类型是要发送回的值的数据类型。
二、函数
1、定义
#include <iostream> using namespace std; /** * 加法函数 * @param num1 加数 * @param num2 加数 * @return 和 */ int add(int num1, int num2) { return num1 + num2; } int main() { //调用函数 cout << add(2, 3) << endl; return 0; }
5
#include <iostream> using namespace std; //1、无参无返 void fun1() { cout << "hi" << endl; } //2、有参无返 void fun2(int num) { cout << num << endl; } //3、无参有返 int fun3() { return 10; } //4、有参有返 int fun4(int num) { return num; } int main() { return 0; }
2、值传递
#include <iostream> using namespace std; void swap(int num1, int num2) { cout<<"swap交换前"<<endl; cout<<"num1="<<num1<<endl; cout<<"num2="<<num2<<endl; int tem=num1; num1=num2; num2=tem; cout<<"swap交换后"<<endl; cout<<"num1="<<num1<<endl; cout<<"num2="<<num2<<endl; } int main() { //调用函数 int num1 = 10; int num2 = 20; cout<<"main调用前"<<endl; cout<<"num1="<<num1<<endl; cout<<"num2="<<num2<<endl; swap(num1,num2); cout<<"main调用后"<<endl; cout<<"num1="<<num1<<endl; cout<<"num2="<<num2<<endl; return 0; }
main调用前 num1=10 num2=20 swap交换前 num1=10 num2=20 swap交换后 num1=20 num2=10 main调用后 num1=10 num2=20
3、函数的申明
#include <iostream> using namespace std; //函数的申明,申明可以有多次 int max(int num1, int num2); int main() { cout << max(10, 29) << endl; return 0; } //函数的定义 int max(int num1, int num2) { return num1 > num2 ? num1 : num2; }
29
4、分文件编写函数
swap.h
#include <iostream> using namespace std; //函数的申明 void swap(int num1, int num2);
swap.cpp
#include "swap.h" //函数的定义 void swap(int num1, int num2) { cout << "swap交换前" << endl; cout << "num1=" << num1 << endl; cout << "num2=" << num2 << endl; int tem = num1; num1 = num2; num2 = tem; cout << "swap交换后" << endl; cout << "num1=" << num1 << endl; cout << "num2=" << num2 << endl; }
main.cpp
#include <iostream> #include "swap.h" using namespace std; int main() { int num1 = 10; int num2 = 20; swap(num1, num2); return 0; }