【教程】C++语言基础学习笔记(八)——函数

文首标志
写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!


【C++语言基础学习】系列文章

第一章 《项目与程序结构》
第二章 《数据类型》
第三章 《运算符》
第四章 《流程控制》
第五章 《Vector向量》
第六章 《String字符串》
第七章 《Array数组》
第八章 《函数》
第九章 《指针》
第十章 《结构体》


文章目录

  • 【C++语言基础学习】系列文章
  • 一、函数定义
  • 二、函数值传递
  • 三、函数常见样式


一、函数定义

在C++中,函数是一段可重复使用的代码块,用于执行特定的任务。它可以接受参数并返回一个值。其作用实质上是将一段经常使用的代码封装起来,减少重复代码。
而对于函数的定义,主要有五个步骤。

  1. 返回值类型
  2. 函数名
  3. 参数表列
  4. 函数体语句
  5. return表达式

其语法如下。

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

其中,以下是函数的声明部分。

返回值类型 函数名(参数列表);

函数声明是为了告诉编译器函数名称以及如何调用函数。而相比于函数的完整定义,函数声明可以声明多次,定义则只能有一次。
以下是简单的示例。

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

这里就是定义返回值类型为整型,函数名为add,设置了num1num2两个整型参数。在函数体语句中,定义一个整型变量sum承接num1num2相加的和,最后返回变量sum内的值。
函数调用方法如下所示。

add(1, 2);

返回结果如下。

3

值得注意的是,在定义函数时括号内的参数叫做形参(形式参数),而调用函数时括号内实际输入的参数则被称为实参(实际参数)。

二、函数值传递

在C++中,函数参数可以通过值传递的方式进行传递。值传递是指将参数的值复制到函数的形参中,函数在执行期间使用这个副本来处理数据。简单来说,就是函数在调用时实参将数值传入给形参。而在值传递时,如果形参中发生任何改变,并不会影响实参。
具体示例如下。

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;
}

首先定义一个交换函数swap(num1, num2),从函数体内部语句可以看到其作用是将输入的参数内容互换。另外,当不需要返回值时,可以使用void的返回值类型,return语句也可以省略,就如同这个定义的函数一样。

int a = 10;
int b = 20;
cout << "交换前a = " << a << endl;
cout << "交换前b = " << b << endl;
swap(a, b);
cout << "交换后a = " << a << endl;
cout << "交换后b = " << b << endl;

接着,定义变量ab并赋值,在用std::cout对象输出一下交换前和交换后作为实参的ab的值。
返回结果如下。

交换前a = 10
交换前b = 20
交换前:
num1:10
num2:20
交换前:
num1:20
num2:10
交换后a = 10
交换后b = 20

从输出结果可以看到,在函数交换功能使用后,函数的形参num1num2改变了,但作为实参的ab却并没有改变,这就是值传递令形参改变却不会改变实参。

三、函数常见样式

常见函数样式有4种。

  1. 无参数无返回值
  2. 有参数无返回值
  3. 无参数有返回值
  4. 有参数有返回值

以下是简单的示例。

#include <iostream>using namespace std;// 1. 无参数无返回值
void test1()
{cout << "this is test1" << endl;
}
// 2. 有参数无返回值
void test2(int a)
{cout << "this is test2 a = " << a << endl;
}
// 3. 无参数有返回值
int test3()
{cout << "this is test3" << endl;return 1000;
}
// 4. 有参数有返回值
int test4(int a)
{cout << "this is test4 a = " << a << endl;return 1000;
}int main()
{// 无参无返函数调用test1();// 有参无返函数调用test2(23);// 无参有返函数调用int num1 = test3();cout << "test3 return:" << num1 << endl;// 有参有返函数调用int num2 = test4(23);cout << "test4 return:" << num2 << endl;
}

返回值结果如下。

this is test1
this is test2 a = 23
this is test3
test3 return:1000
this is test4 a = 23
test4 return:1000


我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

文末标志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/258710.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商小程序09活动管理

目录 1 创建数据源2 详情页面搭建3 首页轮播图搭建4 最终的效果5 总结 商家在日常运营中经常需要通过活动来进行推广和促销&#xff0c;我们在小程序中也需要考虑这部分的业务。本节我们讲解一下微搭低代码中如何实现活动的功能。 1 创建数据源 展示信息需要将信息存储到数据源…

【Linux系统化学习】文件重定向

目录 文件内核对象 文件描述符的分配规则 重定向 重定向的概念 dup2系统调用 输出重定向 追加重定向 输入重定向 stderr解析 重定向到同一个文件中 分离常规输出和错输出 文件内核对象 上篇文章中我们介绍到了操作系统中的文件&#xff0c;操作系统为了方…

代码随想录算法训练营第31天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

文章目录 理论基础分发饼干思路&#xff1a;代码&#xff1a; 摆动序列思路一 贪心算法&#xff1a;代码&#xff1a; 思路二&#xff1a;动态规划&#xff08;想不清楚&#xff09;代码&#xff1a; 最大子序和思路&#xff1a;代码&#xff1a; 理论基础 贪心算法其实就是没…

开关电源电路主要元器件基础知识详解

在学习电子电路过程中&#xff0c;电源我们无法绕开的一个重要部分&#xff0c;很多时候&#xff0c;故障就出现在电源部分&#xff0c;特别是开关电源。开关电源电路主要是由熔断器、热敏电阻器、互感滤波器、桥式整流电路、滤波电容器、开关振荡集成电路、开关变压器、光耦合…

Slider滑动输入条(antd-design组件库)简单使用

1.Slider滑动输入条 滑动型输入器&#xff0c;展示当前值和可选范围。 2.何时使用 当用户需要在数值区间/自定义区间内进行选择时&#xff0c;可为连续或离散值。 组件代码来自&#xff1a; 滑动输入条 Slider - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-de…

linux系统下vscode portable版本的c++/Cmake环境搭建002:使用 VSIX 安装VSCODE插件(暂记)

使用 VSIX 安装VSCODE插件 在 Visual Studio Code (VSCode) 中&#xff0c;你可以通过以下步骤离线安装插件&#xff1a; 获取插件的 VSIX 文件&#xff1a; 在一个联网环境中&#xff0c;访问 Visual Studio Code Marketplace&#xff0c;搜索并找到你想要的插件。 比如&am…

1Coze平台介绍

2023年随着OpenAI推出GPT 3.5&#xff0c;AI赛道变得更加火热。GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;用于生成文本、理解语言和进行各种语言任务。GPT是由OpenAI开发的&#xff0c;它…

【Linux系统化学习】缓冲区

目录 缓冲区 一个样例 现象解释 缓冲区存在的位置 缓冲区 在刚开始学习C语言的时候我们就听过缓冲区这个名词&#xff0c;很是晦涩难懂&#xff1b;在Linux下进程退出时也包含缓冲区&#xff0c;因此缓冲区到底是什么&#xff1f;有什么作用&#xff1f; 让我们先从一个小…

拿捏c语言指针(上)

目录 前言 ​编辑 指针 内存与地址 计算机常见单位 理解编址 取地址&#xff0c;指针变量&#xff0c;解引用 取地址 指针变量 解引用 指针变量大小 指针类型的作用 char*解引用后 指针-整数 应用 void*指针 const修饰指针变量 const修饰普通变量 const修饰指…

【计算机网络】网络层之IP协议

文章目录 1.基本概念2.协议头格式3.网段划分4.特殊的IP地址5.IP地址的数量限制6.私有IP地址和公网IP地址7.路由 1.基本概念 IP地址是定位主机的&#xff0c;具有一个将数据报从A主机跨网络可靠的送到B主机的能力。 但是有能力就一定能做到吗&#xff0c;只能说有很大的概率。…

高校疫情防控系统的全栈开发实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Django学习全纪录:Django开发环境的搭建

导言 对于Django&#xff0c;它是Python的一个开发框架&#xff0c;之前系统地学习过。遗憾的是&#xff0c;对于一些遇到的问题&#xff0c;没有及时地记录下来。因此&#xff0c;我将它重新捡起&#xff0c;进行学习和实践。从搭建环境开始&#xff0c;重新去学习它&#xff…

使用Taro开发鸿蒙原生应用——快速上手,鸿蒙应用开发指南

导读 本指南为开发者提供了使用 Taro 框架开发鸿蒙原生应用的快速入门方法。Taro&#xff0c;作为一个多端统一开发框架&#xff0c;让开发者能够使用一套代码同时适配多个平台&#xff0c;包括鸿蒙系统。文章将详细介绍如何配置开发环境&#xff0c;以及如何利用 Taro 的特性…

如何在CSS中实现背景图片的渐变?

--引言 在CSS中&#xff0c;实现背景图片的渐变通常需要使用linear-gradient或者radial-gradient函数&#xff0c;这些函数可以与背景图像一起使用来创建渐变效果。然而&#xff0c;CSS的渐变并不直接支持使用图像作为渐变的颜色停止点。但你可以通过一些技巧来实现类似的效果…

软件工程师,超过35岁怎么办

概述 随着科技行业的飞速发展&#xff0c;软件开发工程师的职业道路充满了各种机遇和挑战。对于已经在这个行业摸爬滚打了十多年的软件开发工程师来说&#xff0c;当他们步入35岁这个年纪时&#xff0c;可能会感到一些迷茫和焦虑。许多人担忧&#xff0c;在以创新、活力、快速迭…

代码随想录刷题笔记 DAY 28 | 复原 IP 地址 No.93 | 子集 No.78 | 子集 II No.90

文章目录 Day 2801. 复原 IP 地址&#xff08;No. 93&#xff09;1.1 题目1.2 笔记1.3 代码 02. 子集&#xff08;No. 78&#xff09;2.1 题目2.2 笔记2.3 代码 03. 子集 II&#xff08;No. 90&#xff09;3.1 题目3.2 笔记3.3 代码 Day 28 01. 复原 IP 地址&#xff08;No. 9…

Arrays工具类的常见方法总结

一、Arrays.asList( ) 1、作用 Arrays.asList( )可以将一个数组以集合的形式传入一个集合对象。通常用来将一组元素全部添加到集合中。 2、参数及返回值 参数&#xff1a;一组动态参数 返回值&#xff1a;List<T>集合 3、应用举例 List<String> boyListArra…

【知识整理】产研中心岗位评定标准之大数据岗位

为贯彻执行集团数字化转型的需要,该知识库将公示集团组织内各产研团队不同角色成员的职务“职级”岗位的评定标准; 一、定级定档目的 通过对公司现有岗位及相应岗位员工的工作能力、工作水平进行客观公正评定,确定各岗位的等级及同等级岗位员工对应的档级,从而为员工以后的晋升…

WordPress站点如何实现发布文章即主动推送到百度快速收录和普通收录?

我们在WordPress后台成功发布文章之后&#xff0c;如果靠搜索引擎来抓取的话&#xff0c;可能会比较慢&#xff0c;所以十分有必要将我们成功发布的文章马上提交到百度、必应等搜索引擎中。下面boke112百科就跟大家说一说WordPress站点如何实现发布文章即主动推送到百度快速收录…

函数、极限、连续——刷题(5

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 2.解题思路和步骤&#xff1a; 首先可能想到的是答案为0&#xff0c;但是不可以把 直接化简为n 这里要用到分子分母的平方差&#xff0c;sin^2的周期为π&#x…