12.C++程序中的自定义函数

news2024/9/30 19:43:04

11.C++程序中的常用函数-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/fly_binbin/article/details/142643406上面说的是C++程序中内置的一些函数,这些函数是由编译器提供的,可以方便大家的使用,但是很多时候,单纯的内置函数无法满足人们的需求,这个时候就要用到自定义函数了。

将多个步骤集中在一起,可以供其它调用方重要使用的,就是函数,即函数是为执行某些功能而集成的代码块。

函数的格式一般如下:

返回类型 函数名(参数1,参数2...)
{
    处理代码块;
    返回值;
    上面统称为函数体
}

函数由 返回值 ,函数名,参数和函数体构成,返回值指的是函数执行完所要返回的内容,如果没有返回则为void,函数名,则定义函数的名称,参数,是声明的接收数据的特定的变量。

如:

#include <iostream>
#include <math.h> //需要包含头文件
using namespace std;
//比较两个数的大小,并返回小值
int Min(int x, int y) { 
	if (x > y)
		return y;
	else return x;
}

int main() {


}

上面的int Min(int x,int y)则为一个函数,第一个int 为返回值的类型,函数名叫Min,有两个int类型参数,分别为x,y。

	if (x > y)
		return y;
	else return x;

上面的代码为函数体,返回的是int类型的值。

定义好函数了,就要使用函数,所谓函数的使用,就是函数的调用。在调用函数,一般为:

int t=Min(x,y)

定义一个int类型的t变量,接收Min返回的值,程序在运行到int t=Min(x,y)时,将会跳转到函数中进行执行,在执行完后,继续执行后面的代码,

#include <iostream>
#include <math.h> //需要包含头文件
using namespace std;
//比较两个数的大小,并返回小值
int Min(int x, int y) {
	if (x > y)
		return y;
	else return x;
}

int main() {

	int x = 10;
	int y = 20;
//调用函数,初始化t
	int t = Min(x, y);

	cout << t << endl;

}

 在通过Min调用自定义函数时,变量x的值被赋值给了Min的变量x,为了看的更清楚,我们把main中定义的x,y修改一个名称:

#include <iostream>
#include <math.h> //需要包含头文件
using namespace std;
//比较两个数的大小,并返回小值
int Min(int x, int y) {
	if (x > y)
		return y;
	else return x;
}

int main() {

	int a = 10;
	int b = 20;
//调用函数,初始化t
	int t = Min(a, b);

	cout << t << endl;

}

这个时候执行代码:

并不影响执行结果,,那个Min中的参数x,y,他们被称作形参,属于一个形式参数,在a,b赋值给他的时候,其实是赋值的a,b的副本,两个有相同的值。

由于函数的参数是通过值传递的,所以函数调用中的参数,可以是一个有返回值的表达式。

上面是普通数值的传递,如果遇到数组,应该怎么传递呢,他们两个是有区别的,比如下面的数,取数组中的最小值,

#include <iostream>
#include <math.h> //需要包含头文件
using namespace std;
//比较两个数的大小,并返回小值

int Min(int x[], int arrayLength) {
	int i, min = 65535;
	cout << arrayLength << endl;
	for (i = 0; i < arrayLength; i++) {
		cout << i << "    " << x[i] << endl;
		if (min > x[i])
			min = x[i];


	}
	return min;
}

int main() {

	int aa[7]  = {10, 2, 3, 4, 2, 1, 3};


	int t = Min(aa, 7);

	cout << "t=" << t << endl;

}

函数的形参还可以传递指针等参数,函数在传递数组时,传递过去的仅仅是名称不同,他们指向的还是同一个内存地址,如果在函数中,修改了其中一个值的内容,那么外面的实参的内容也会修改。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序题目:重新排列后的最大子矩阵

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;重新排列后的最大子矩阵 出处&#xff1a;1727. 重新排列后的最大子矩阵 难度 7 级 题目描述 要求 给定一个大小为 m n \texttt{m} \times \tex…

第三方供应商不提供API接口?教你四步破解集成难题

API开放需求 在企业数字化转型过程中&#xff0c;异构系统之间的连接是信息化阶段不可或缺的一环。通过应用API&#xff0c;企业能够实现不同系统、平台和应用之间的数据交换与功能调用&#xff0c;从而形成端到端的业务流程协同。然而&#xff0c;很多企业在集成第三方供应商…

web应用合规(一)双因子认证2FA解决方案

文章目录 背景知识什么是2FA认证因子分类知识因素持有因素 解决方案密码 OTP密码 TOTP方案对比 参考文档后记 最近做海外项目&#xff0c;对合规方面的要求比较高&#xff0c;写一篇流水账来记录下 登录时的双因子认证过程&#xff0c;于是开启了2FA&#xff08;2 factor au…

CTF网络安全大赛_网安战队简历

CTF网络安全大赛 CTF比赛介绍 CTF&#xff08;Capture The Flag&#xff0c;中文&#xff1a;夺旗赛&#xff09;是网络安全领域中一种信息安全竞赛形式&#xff0c;起源于1996年。DEFCON全球黑客大会&#xff0c;代替了之前黑客们通过互相发起真实攻击进行技术比拼的方式。参…

Shopee虾皮店铺难出爆品?你可能忘了测款!

大部分Shopee虾皮卖家可能都经历过店铺销量一直平平无奇、较长时间出不了爆品的情况&#xff0c;明明做足了功课&#xff0c;为什么还会出现这种现象&#xff1f;那有可能是店铺运营没有明确的重点&#xff0c;太“雨露均沾”反而难以显著提升销量&#xff0c;应该对一个或部分…

西语中关于拆盲盒的表达是什么?柯桥西语口语培训

拆盲盒常常要靠运气。那么西语中有哪些相关的表达呢&#xff1f; 好运 buena suerte - tener &#xff08;buena&#xff09;suerte 最常用的形容“好运”的表达。可以说tener suerte de hacer algo&#xff0c;运气好而做成某事。 - ¡Vaya potra! / ¡Qu potra! 用…

兴业周报|十一黄金周即将到来~楼市利好政策重磅来袭

黄金地段&#xff1a;社区位于东三环核心位置&#xff0c;定位于CBD商务圈旁的纯居住区&#xff0c;容积率不足2.8&#xff0c;绿化率达到50%以上&#xff0c;树种超过80余种&#xff0c;实现“每个楼座都在园林中”的效果。 配套成熟&#xff1a;周边配套齐全&#xff0c;富力…

Error和Exception

1.异常体系结构 &#xff08;1&#xff09;Java把异常当作对象处理&#xff0c;定义一个基类java.lang.Throwable作为所有异常的超类。 &#xff08;2&#xff09;Java API中定义了许多异常类&#xff0c;这些异常类分为两大类&#xff0c;错误Error和异常Exception 2.什么是…

湿气缠身不用愁,拔罐疗法助你轻松“祛湿”!

在这个快节奏的时代&#xff0c;我们常常忽略了身体发出的微妙信号&#xff0c;其中&#xff0c;“湿气重”便是许多现代人面临的隐形健康挑战。湿气&#xff0c;中医理论中的一个重要概念&#xff0c;它像无形的枷锁&#xff0c;悄悄影响着我们的体态、精神状态乃至生活质量。…

react-问卷星项目(3)

项目实战 React Hooks 缓存&#xff0c;性能优化&#xff0c;提升时间效率&#xff0c;但是不要为了技术而优化&#xff0c;应该是为了业务而进行优化 内置Hooks保证基础功能&#xff0c;灵活配合实现业务功能&#xff0c;抽离公共部分&#xff0c;自定义Hooks或者第三方&am…

鸿蒙开发(NEXT/API 12)【穿戴设备信息查询】手机侧应用开发

// 在使用Wear Engine服务前&#xff0c;请导入WearEngine与相关模块 import { wearEngine } from kit.WearEngine; import { BusinessError } from kit.BasicServicesKit;查询穿戴设备是否支持某种WearEngine能力集 注意 该接口的调用需要在开发者联盟申请设备基础信息权限。…

Java 异常处理机制

目录 1.异常处理的五个关键字 测试一&#xff1a;理解try catch finally 的作用 测试二&#xff1a;设置想要捕获的异常类型 测试三&#xff1a;可以写多个catch。 2.异常快捷键 3.在方法体中抛出异常用throw&#xff1b;在方法参数后面抛出异常用throws &#xff08;1&…

Ubuntu 手动安装 ollama

官方linux安装ollama命令: curl -fsSL https://ollama.com/install.sh | sh 运行结果&#xff1a; 由于官方提供的ollama安装命令老是安装中断&#xff0c;所以我选择手动安装。 手动安装步骤&#xff1a; 官网链接&#xff1a;ollama/docs/linux.md at main ollama/ollama…

盛事启幕 | 第三届OpenHarmony技术大会重磅官宣,邀您共绘智联未来

未来已来&#xff0c;科技何向&#xff1f; ——10月12日-13日众多大咖齐聚上海 聚焦OpenHarmony生态前沿 与您一同解码技术的下一片蓝海

【STM32单片机_(HAL库)】4-1【定时器TIM】定时器中断点灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 timer驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器中断配置流程main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "timer.h"int main(void) {H…

seata服务端部署

1.下载seata 官网下载地址&#xff1a;http://seata.io/zh-cn/blog/download.html 或者下载 作者已经下载的压缩包1.4.0 注意&#xff01;&#xff01;&#xff01; 要参考对应的版本&#xff0c;否则可能出现无法正常启动的情况。 参考文档 下载完毕后解压压缩文件 2.修改配…

6个Android ANR面试题和优化方案

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 面试题 1、 解释什么是ANR以及它在Android中是如何产生的&#xff1f; ANR是指应用程序未响应&#xff0c;通常是因为主线程被阻塞导致无法及…

【性能测试】jmeter工具核心组件说明手册

前言 Apache JMeter 是一个用于压力测试和性能测量的开源工具&#xff0c;它被设计用来测试静态和动态资源&#xff08;例如静态文件、CGI接口、Java 对象、数据库和 FTP 服务器&#xff09;&#xff0c;以及分析整体系统性能。JMeter提供了丰富的组件集&#xff0c;使得用户可…

国内邮件推送防拦截秘籍与内容优化技巧详解

企业需优化邮件内容、选择优质服务商、配置域名验证&#xff0c;避免垃圾邮件特征&#xff0c;控制发送频率和策略&#xff0c;以提高邮件送达率和用户互动率。ZohoCampaigns等平台提供多项功能助力邮件营销。 一、了解邮件拦截的常见原因 在讨论如何避免邮件被拦截之前&#…

Cookie Session Token的各种知识

Session 1、为什么有session&#xff1f; 因为HTTP是无状态协议&#xff0c;每次请求服务器并不知道历史请求的记录&#xff0c;Session和Cookie主要就是为了弥补无状态的特性 2、Session是什么 客户端请求时&#xff0c;服务端开辟一块内存空间存放Session对象&#xff0c;存…