[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++编程中的基本组成部分,通过函数可以实现代码的模块化,提高代码的复用性和可读性。

相关推荐
ejinxian7 分钟前
PHP 超文本预处理器 发布 8.5 版本
开发语言·php
GiraKoo29 分钟前
【GiraKoo】C++14的新特性
c++
软件黑马王子33 分钟前
C#系统学习第八章——字符串
开发语言·学习·c#
阿蒙Amon35 分钟前
C#读写文件:多种方式详解
开发语言·数据库·c#
悠悠小茉莉39 分钟前
Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
c++·ide·vscode·python·visualstudio·visual studio
Da_秀43 分钟前
软件工程中耦合度
开发语言·后端·架构·软件工程
Fireworkitte1 小时前
Java 中导出包含多个 Sheet 的 Excel 文件
java·开发语言·excel
坏柠1 小时前
C++ Qt 基础教程:信号与槽机制详解及 QPushButton 实战
c++·qt
泽02021 小时前
C++之红黑树认识与实现
java·c++·rpc
运器1232 小时前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程