C++函数


1 函数概述

作用
(1)将需要多次调用的代码进行封装,方便复用,减少重复代码。
(2)将较大的程序划分为若干个程序块,每个模块实现特定的功能。


2 函数的定义

定义函数的步骤:
(1)返回值类型
(2)函数名
(3)形参列表:调用该函数时传入数据对应的形参
(4)函数体语句
(5)return 表达式:与返回值类型相匹配

语法

返回值类型  函数名(形参列表){
	函数体语句
	return表达式
}

示例:定义加法函数,实现两数求和

//函数定义
int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}

3 函数的调用

功能:使用已定义的函数
语法函数名(参数)

注:函数定义小括号内的参数为形参;函数调用时传入的参数为实参

示例

//函数定义
int add(int num1, int num2) {
	int sum = num1 + num2;
	return sum;
}

int main() {
	int a = 1;
	int b = 2;
	
	//函数调用
	int res = add(a, b);
	cout << "res = " << res << endl;
	return 0;
}

4 值传递

值传递:函数调用时,实参将数值传递给形参

注:值传递(实参传递给形参)时,形参的改变,不会影响实参

示例:两数互换

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 ; 	//当函数声明不需要返回值时,可以省去return
}

int main() {
	int a = 10;
	int b = 20;

	//值传递(实参传递给形参)时,形参的改变,不会影响实参
	swap(a, b);

	cout << "main函数中的 a = " << a << endl;	//10
	cout << "main函数中的 b = " << b << endl;	//20

	return 0;
}

5 函数的常见形式

常见的函数形式有4种:
(1)无参无返
(2)有参无返
(3)无参有返
(4)有参有返


6 函数声明

作用: 提前告知编译器函数的名称与调用方式。函数的实际主体可进行单独定义。
语法返回值类型 函数名(形参列表);

注1:函数声明可以有多次,但函数定义只能有一次
注2:函数定义在main函数之前时,函数声明可以不存在;函数定义在main函数之后时,函数声明必须存在。

示例:声明可以多次,定义只能一次

//函数声明(可有多次)
int max(int a, int b);
int max(int a, int b);

//函数定义(只能一次)
int max(int a, int b)
{
	return a > b ? a : b;
}

int main() {
	int a = 100;
	int b = 200;

	cout << max(a, b) << endl;

	return 0;
}

7 函数的分文件编写

作用:使代码结构更清晰。

函数分文件编写的4个步骤:
(1)创建后缀名为.h的头文件 ;
(2)创建后缀名为.cpp的源文件;
(3)在头文件中写函数声明
(4)在源文件中写函数定义包含头文件

示例

/* swap.h头文件 */
#include<iostream>
using namespace std;

//函数声明
void swap(int a, int b);
/* swap.cpp源文件 */
//包含头文件
#include "test.h"

//函数定义
void swap(int a, int b) {
	int temp = a;
	a = b;
	b = temp;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
}
/* main函数的源文件 */
//包含头文件
#include "test.h"

int main() {
	int a = 10;
	int b = 20;
	swap(a, b);

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值