首页 > 其他分享 >函数

函数

时间:2022-10-24 09:22:46浏览次数:78  
标签:return 函数 int VVV 参数 返回值

前言

考虑这样的问题,你需要实现三个功能,而且每个功能需要使用多次,那么如果使用循环的话是不是不能很好的控制每个功能的次数,不使用循环的话又会使得代码很长。这时,就可以使用函数来解决。


接下以这几个例子来讲解函数:

例一:
double cal_dis(int x_1,int x_2,int y_1,int y_2){
	int ls=(x_1-x_2)*(x_1-x_2)+(y_1-y_2)*(y_1-y_2);
	return sqrt(ls);
}
例二:
void change(int& x,int& y){
	int ls=y;
	y=x,x=ls;
	return;
}
例三:
int jia(int a,int b);
int jia(int a,int b){
	return a+b;
}

一、函数的定义与使用

具体的定义可以去 百度百科 看看。


几个名词与组成

  1. 函数可以接受若干值,叫做函数的参数。
  2. 函数可以返回某个值,叫做函数的返回值,其类型叫做函数的返回值类型。
  3. 函数有一个名称,叫做函数名称。

所以函数的组成就很清晰了,包括函数的返回值类型,函数名,函数的参数列表以及函数的主体。


两种定义方式

函数定义时有两种方式,一种是在定义时就把整个函数打完(声明+定义),结构如下:

返回值类型 函数名(参数1,参数2,......){
	若干语句
	return 某个值;
}

另一种是先声明这个函数,再在另一个地方补全函数,如例三。(先声明。后定义)

注意,return 在这里起到结束函数的作用,后面的语句将不再执行。

不要忘记打return !


两种传参方式

观察例一与例二,可以发现例二在数据类型后面加了个 &,其意义在于使得参数在函数里改变时,原来的值也会改变,而例一就不会,这样就可以应对更多的情况。


函数的作用范围

函数的作用范围与全局变量类似,只要在声明的后面即可调用。


函数的调用

函数的调用如下:

函数名(参数1,......);

用语言来描述就是:先写函数名,在其后面加上 (),在括号中我们把参数按顺序填入,两个参数中间用逗号隔开。在这里,函数的调用可以看成一个表达式(不过不一定有值)。

例:

int jia(int a,int b){
	return a+b;
}
int main(){
	int x=0,y=0;
	cin>>x>>y;
	int z=jia(x,y);
	cout<<z;
	return 0;
}

在这个例子中,演示了如何调用函数。

特别地,当我们在函数中调用这个函数时,就实现了递归(这里不讲)。


二、函数的理解

我们可以把函数看做看成一个加工厂,你给他一些原料(指参数或一些全局变量),它就会进行加工(指各种运算)。加工完后,它可能把成品直接给你(指返回值),也可能没有成品(指没有返回值)。

这就是一个较为形象的函数理解(确信)。
其实也可以理解成出入口啥的,只要自己能够理解就行。

三、函数的意义

函数在某些作用上与循环是有些类似的,但函数能干更多的事,比如说递归(比较主要的作用)。另外,函数可以让代码看起来比较专门化,比如你原来的代码是这样的:

\[\require{AMScd} \begin{CD} 开始\\ @VVV \\ 功能一\\ @VVV \\ 功能二 \\ @VVV \\ 功能一 \\ @VVV \\ 功能三 \\ @VVV \\ 功能一 \\ @VVV \\ 结束 \end{CD} \]

它们在主函数中顺序写出。

现在,我们让函数一实现功能一,函数二实现功能二,函数三实现功能三,就可以写成下面这样:

void func1(){
	;
}
void func2(){
	;
}
void func3(){
	;
}
int main(){
	开始部分;
	func1();
	func2();
	func1();
	func3();
	func1();
	结束;
}

怎么样,是不是少打了很多东西,这样就可以节约一些打代码的时间,使代码的复用率更高。

end

标签:return,函数,int,VVV,参数,返回值
From: https://www.cnblogs.com/yangshiyu10/p/16811399.html

相关文章

  • create-function函数代码注入
    creat_function()代码注入creat_function函数根据传递的参数创建匿名函数,并为其返回唯一名称。语法:create_function(string$args,string$code)string$args声明的函......
  • 10月23日:学习日记(函数递归)
    什么是递归?程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法......
  • 浅谈必修1的函数
    [Math]Review:函数(BX1)@Author:GBWANG77861.1函数的相关概念1.定义域:自变量的取值范围2.值域:函数值的取值范围举个例子$$f(x)=x^2+2x+1$$此时我们已知这个......
  • 函数柯里化实现sum函数
    需求实现sum函数,使其可以传入不定长参数,以及不定次数调用//示例console.log(sum(1,2)(3)())//6console.log(sum(2,3,4,5)(1,2)(3)(4)())//23需求分析实现sum......
  • 重温Excel基础函数(16):Column和Columns函数【获取列号和列数】
    1概念COLUMN函数是Excel中一个常用的函数,它可以用来返回参数单元格的列号。COLUMNS函数在Excel中的使用次数较少,它可以用来返回数组或引用的列数。注意这里是列数,不是列号。......
  • 重温Excel基础函数(15):Concatenate 函数【连接函数,相当于&】
    1概念使用CONCATENATE函数(其中一个文本函数)将两个或多个文本字符串联接为一个字符串。2语法语法:=CONCATENATE(text1, [text2],...)​参数名称说明 ①text1   (必需输入......
  • 重温Excel基础函数(14):Combin函数【返回指定数量元素的总组合数】
    1概念COMBIN函数返回指定数量元素的总组合数。可以指定组合元素数量。 使用COMBIN确定给定数量项目可能的总组数。如果觉得概念抽象的话,继续往下阅读你就越来越清楚了。......
  • 复合函数
    #include<stdio.h>intmain(){inta=0;intsum;intb;scanf("%d",&a);if(a<1){printf("%d\n",a);}elseif(1<=a<10){sum=2*a-1;printf("%d\n"......
  • 函数声明
    前言javaSE的运算符、选择语句、循环语句等都能在js使用,就不详细写在笔记里了函数声明functionfunction函数名(形参){}<script>functioncomputed(n,m,op)......
  • Date构造函数
    Date.parse()//Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数//如果接收的参数并不表示日期,则该方法返回NaNletsomeDate=Da......