当前位置: 首页 > article >正文

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

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.kler.cn/a/327037.html

相关文章:

  • 在vscode的ESP-IDF中使用自定义组件
  • 图书馆预约占座系统:数据驱动的座位分配机制
  • STM32串口第一次接收数据时第一个字节丢失的问题
  • [WASAPI]从Qt MultipleMedia来看WASAPI
  • 如何使用Windows快捷键在多显示器间移动窗口
  • VMware vCenter保姆级安装部署(VMware VCenter Nanny Level Installation and Deployment)
  • idea启动项目报错Command line is too long
  • 中信银行西安分行:“极地来信”沉浸展西安站正式启幕
  • (详细、重点)iOS开发与前端开发的相同点和不同点 20个
  • golang学习笔记22-面向对象(四):接口【重要】
  • 优化后的版本
  • 家用无线路由器配置
  • 大语言模型之LlaMA系列-LlaMA 2及LlaMA_chat(下)
  • c++(AVL树及其实现)
  • 在线PDF怎么转换成JPG图片?分享14种转换操作!
  • 【系统架构】服务端高并发分布式结构演进之路
  • 使用PYTHONPATH的注意事项
  • C++11中智能指针以及标准模板库 My_string My_stack
  • Zabbix 7.0 图表中文乱码问题处理步骤
  • 后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)
  • leetcode刷题day27|贪心算法Part01(455.分发饼干、376. 摆动序列、53. 最大子序和)
  • 两个向量所在平面的法线,外积,叉积,行列式
  • GIT安装及集成到IDEA中操作步骤
  • Linux基础命令mount,umount详解
  • jmeter进行性能测试实践
  • 查看 .so 库(共享对象库)的依赖