C++总结笔记-6. 函数

时间:2024-01-23 21:12:05

作用:将一段经常使用的代码进行封装,减少重复代码

6.1 函数的定义/调用

实现一个加法函数,功能:传入两个整型数据,计算数据相加的结果,并且返回。

// 定义加法函数
// num1和num2为形参
int add(int num1, int num2)   // 返回值类型 函数名(参数列表){函数体 return表达式}
{
	int sum = num1 + num2;
	return sum;
}

#include<iostream>
using namespace std;

int main(){

	int a = 7;

	int b = 8;

	// a,b为实参

	int sum = add(a, b);

	cout << sum << endl;

	return 0;

}

6.2 值传递

值传递就是函数调用时实参将数值传入给形参

值传递时,如果形参发生变化,并不影响实参

#include<iostream>
using namespace std;

// 函数之“值传递”
void swap(int num1, int num2){

    cout << "交换前的值";

    cout << "num1的值:" << num1 << endl;

    cout << "num2的值:" << num2 << endl;

    cout << "交换后的值";

    int temp = num1;

    num1 = num2;

    num2 = temp;

    cout << "num1的值:" << num1 << endl;

    cout << "num2的值:" << num2 << endl;

    return;  // 当函数返回值类型为void时, 可以不写,也可这样写

}

int main(){

    int a = 10;

    int b = 22;

    swap(a, b);

    cout << "值传递时,如果形参发生任何改变,并不影响实参" << endl;

    cout << "a的值:" << a << endl;

    cout << "b的值:" << b << endl;

    return 0;

}

6.3 函数的样式

1. 无参无返

2. 无参有返

3. 有参无返

4. 有参有返

6.4 函数的声明

可以将函数往主函数后面写,提前使用函数声明告诉编译器这个函数是存在的。

#include <iostream>

using namespace std;

// 函数声明
// 提前告诉编译器函数的存在,可以利用函数的声明
int max(int num1, int num2);

int main(){

    int a = 10;

    int b = 20;

    cout << max(a, b); 

    return 0;

}

int max(int num1, int num2)
{
    return num1 > num2 ? num1 : num2;  // 三目运算符
}

6.5 函数分文件编写

作用:让代码结构更加清晰

函数分文件编写步骤:

1)创建.h头文件

2)创建.cpp源文件

3)在.h头文件中写函数的声明

4)在.cpp源文件中写函数的定义

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 tmp = a;

	int a = b;

	int b = tmp;

	cout << “a = ” << a << endl;

	cout << “b = ” << b << endl;

}

func.cpp

#include “swap.h”

int main()
{
	int a = 10;

	int b = 12;

	swap(a, b);

	return 0;
}