[C++基础学习]----05-函数详解

前言

在学习C++的基础阶段,函数是一个非常重要的概念。函数是用来完成特定任务的一段代码,它可以被多次调用,并且可以接受参数和返回值。

正文

01-函数简介

函数的定义

在C++中,函数的定义通常包括函数的返回类型、函数名、参数列表和函数体。函数的定义通常有以下形式:

cpp 复制代码
return_type function_name(parameters) {
    // 函数体
}

其中:return_type 表示函数的返回类型,可以是intdoublevoid等;function_name 表示函数的名称;parameters 表示函数的参数列表,可以包括零个或多个参数;函数体中包含了函数需要执行的代码。

函数的调用

函数的调用是通过函数名加上参数列表来实现的,例如:sum函数被调用,并将传入的参数2和3相加并返回结果

cpp 复制代码
int sum(int a, int b) {
    return a + b;
}

int main() {
    int result = sum(2, 3);
    return 0;
}

函数参数

函数可以接受参数,参数可以是基本数据类型、数组、结构体等。参数可以有默认值,也可以使用引用传递来改变参数的值。

函数返回值:
函数可以有返回值,返回值可以是任意类型,如果函数不需要返回值,可以使用void作为返回类型。

函数重载:
C++支持函数重载,即可以定义同名函数,但参数个数或参数类型不同,编译器根据调用时的参数类型决定调用哪个函数。

递归函数:
C++支持递归函数,即函数体内调用自身的函数。递归函数通常用于解决数学问题或树形结构等问题。

02-函数的定义

具体代码和解释如下

cpp 复制代码
#include<iostream>
using namespace std;

int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}


int main()
{


	system("pause");
	return 0;
}

03-函数的调用

具体代码和解释如下

cpp 复制代码
#include<iostream>
using namespace std;


// num1 和num2成为形参
int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}

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

	// a和b 成为实参
	int c = add(a, b);
	cout <<"c = "<< c << endl;

	a = 200;
	b = 300;

	c = add(a, b);  // c已经定义过一次就没有必要再次进行定义
	cout << "c = " << c << endl;


	system("pause");
	return 0;
}

04-函数的值传递

具体代码和解释如下

cpp 复制代码
#include<iostream>
using namespace std;


// 值传递
// 定义函数,实现两个数字交换的过程

// 如果函数不需要返回值,声明函数的时候可以使用void
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);


	system("pause");
	return 0;
}

05-函数的常见样式

具体代码和解释如下

cpp 复制代码
#include<iostream>
using namespace std;


// 函数的常见样式
// 1、无参无返
void test01()
{
	cout << "this is test01" << endl;
}

// 2、有参无返
void test02(int a)
{
	cout<<  "this is test02 a =" << a << endl;
}

// 3、无参有返

int test03()
{
	cout << "this is test03" << endl;
	return 100;//需要写返回值,不然将报错,写多少,调用的时候等于多少
}

// 4、有参有返
int test04(int a)
{

	cout << "this is test04" << endl;
	return a;//需要写返回值,不然将报错
}

int main()
{

	// 无参无返的函数调用
	test01();


	// 有参无返的函数调用
	test02(100);


	//无参有返函数调用

	int num1 = test03();
	cout<< "num1 = " << num1 << endl;
	
	// 有参有返的函数调用
	int num2 = test04(10000);
	cout << "num2 = " << num2 << endl;

	system("pause");
	return 0;
}

06-函数的分文件编写

具体代码和解释如下

swap.h文件

cpp 复制代码
#pragma once
#include <iostream>
using namespace std;


void swap(int a, int b);

swap.cpp文件

cpp 复制代码
#include "swap.h"


void swap(int a, int b)
{
	int temp = a;
	a = b;
	b = temp;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
}

主函数

cpp 复制代码
#include<iostream>
using namespace std;
#include "swap.h"

// 函数的声明
// void swap(int a, int b);
// 
// void swap(int a, int b)
// {
// 	int temp = a;
// 	a = b;
// 	b = temp;
// 	cout << "a = " << a << endl;
// 	cout << "b = " << b << endl;
// }

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

	swap(a, b);
	
	// 由于声明的main主函数,为入口函数,因此,声明其他函数的时候,必须放在main的前面,这是非常不方便的
	// 因此当出现一个大项目函数较多时,可以采用份文件编写的方法
	// 步骤 1、创建头文件.h文件
	// 2、创建源文件.cpp文件
	// 3、在头文件中写函数的声明
	// 4、在源文件中写函数的定义

	system("pause");
	return 0;
}

总结

函数是C++编程中的基本组成部分,通过函数可以实现代码的模块化,提高代码的复用性和可读性。

相关推荐
for_ever_love__1 小时前
UI学习:UISearchController基础了解和应用
学习·ui·ios·objective-c
心中有国也有家2 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
isyangli_blog3 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008113 小时前
FastAPI APIRouter
开发语言·python
Benszen3 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆3 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木3 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
GHL2842710903 小时前
换脸工作流学习
学习·ai
MC皮蛋侠客3 小时前
C++17 多线程系列(五):C++17 并行算法——从串行到并行的零成本迁移
c++·多线程
_李小白4 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习