【对于函数return的理解学习】

如何理解return?

一个函数中可能存在多个return的情况,不管程序执行流程出发了哪个return,都会造成当前函数的立即终止,所以不存在执行两个以及以上return的可能

return就是表示退出当前函数,入口只有一个,但是出口可以有很多个,退出函数后,函数内的全部局部变量不能使用。

多种情况的说明

  1. 返回值类型与函数类型一致,不一致则自动将返回值类型转换成函数类型
  2. 函数中存在多条return语句,一般与if连用,执行到哪个return返回值语句,哪个语句就终止函数,后面的不再继续执行。
  3. 无return的函数,执行到函数结尾时候返回,返回一个不确定的数值给函数
  4. 如果只需要从函数中返回但是不需要任何返回值,可以使用不带表达式的return语句。博客小精华🤭

函数返回多个值如何实现?

大致遵从大神的道路整理了三种返回多个返回值的函数创建方法!一起来学习吧

  1. L申请全局变量(慎用
    2.数组指针法
    结构体指针法

全局变量法

  1. 由于全局变量的作用域是从定义变量开始直到程序结束。
  2. 而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量。
  3. 当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。
  4. 😵文字啰嗦(小小一声sorry
    求最大最小数值:运用到了全局变量的观念(很好理解
#include <stdio.h>
#include <conio.h>
int max,min;//定义两个全局变量用于保存函数的返回值
void max_min(int a,int b) /*定义求最大最小值的函数*/ 
{
    max=min=a; /*初始化最大最小值*/
   	 max=(a>b)?a:b;
    min=(a<b)?a:b;//make by 以太
}
main()  
{
  int x,y;
  printf("请输入2个整数:\n");  
  scanf("%d,%d",&x,&y);
  max_min(x,y) ;/*调用求最大值与最小值的函数*/
  printf("l两个数中的最大值为:%d;最小值为:%d",max,min);/*输出最大值与最小值*/  
 // 结果max=100,min =10;
}

数组指针法

👩‍🏫👩‍🏫👩‍🏫值传递VS地址传递

值传递:
是(main)主调函数(提供实际参数的函数)把实参的值复制给形式参数(被调函数(形式参数接收实际参数数值的函数)(自己的设置函数)参数值的变化并不能改变实参数值)。)
通俗理解别人的东西我可以买到,但是不能占有,我可以随心所欲把我买到的相同物品改成我想改成的样子
=====================================
地址传递:
从实参中传递过来的是实参变量的地址,所以被调函数中形参的改变使得实参也发生变化。
但是鸠占鹊巢的实际故事也不少标😓😓😓

因此,我们可以考虑把多个返回值作为数组元素定义一个数组的形式,并使得该数组的地址,作为函数的形式参数,以传地址的方式传递数组参数,被调函数调用后,形式参数的改变使得实际参数的改变,这样我们再从改变后的数组元素中获得函数的多个数值。
🤫(**偷摸学**到了,**内卷**成功😏😏😏😏)
需要注意的是,如果是数组指针形式,必须要求多个函数的参数必须类型相同

//花了10min理解,我咋那么次
#include <stdio.h>  
  void max_min(int *ptr,int n) /*定义求数组最大值最小值的函数,传递数组指针*/
  {
  int i,j,k;/*j保存最大值所在位置,k保存最小值所在位置*/  
  int *temp;/*用于交换位置*/  
  *temp=*ptr;  
    for(i=0;i<n;i++)  {
  		if(*ptr<*(ptr+i))/*最大值与第一个元素进行交换*/  {  
       	k=i;
  		  *temp=*ptr;  
       	*ptr=*(ptr+k);  
       	*(ptr+k)=*temp; }
  		if(*(ptr+n-1)>*(ptr+i))/*最小值与最后一个元素进行交换*/  {  
  		  j=i;
  		  *temp =*(ptr+n-1);
      	 *(ptr+n-1)=*(ptr+j);  
     	 *(ptr+j)= *temp;}  //make by 以太
   }  
  }
  /*调用最大最小值函数*/  
   
  main()  
{
  int A[6],i;
  for(i=0;i<6;i++)   
    scanf("%d",&A[i]);  
  max_min(A,6);//调用函数喽
  printf("max=%d, min=%d\n \n",A[0],A[5]);   
 }

运用场景就是,适用于多个返回值的数据类型一致的情况。

传递结构体指针

如果我们编写的多个返回值的C函数返回的数据类型不一样,我们可以通过定义全局变量,也可以通过考虑把要求返回的数值定义为一个结构体,然后同样以传递结构体指针的方式把结构体的指针传递给形参结构体指针,那么函数中对结构体修改就是对实参结构体的修改,函数被调用后获取的实参的结构体成员就是函数的多个返回值
当函数要求返回的多个值是相互联系的或者返回的多个值数据类型不一致时可以采用该方法。
感恩友友,一键三联支持下吧😍

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript 中的函数可以理解为一个独立的代码块,它可以接收输入(参数),并返回输出(返回值)。函数是一种重用代码的方法,您可以定义一个函数,并在需要时多次调用它。它有助于提高代码的可读性和可维护性,并使您可以将代码块分组,以便更好地管理和维护代码。 举个例子,您可以定义一个计算两个数字之和的函数,并在需要计算和的任何地方调用该函数。这有助于减少重复代码,并且您可以在函数内部修改代码,而不会影响调用该函数的其他地方。 总之,理解 JavaScript 中的函数需要一些实践和练习。在继续学习之前,您需要对代码块、参数和返回值有一个基本的了解,然后再深入了解函数的用法。 ### 回答2: JavaScript中的函数是一种具有重复利用性的代码块。它们允许我们将一系列逻辑操作封装在一个单独的单元中,并且可以在需要的时候多次调用。 函数的定义使用`function`关键字,后面跟着函数名和一对括号,括号中可以包含函数的参数。函数的主体部分被包裹在大括号中,里面可以包含任意数量的语句,这些语句组成了函数的逻辑。 函数的定义通常在代码的前面或者其他函数的内部。为了调用函数,我们需要使用函数名和一对括号来执行函数。如果函数定义中包含参数,则需要在括号中传递对应的参数值。 函数可以返回一个值,我们可以使用`return`关键字来指定函数的返回值。当函数执行到`return`语句时,函数将停止执行,并将返回值传递回调用者。 函数可以被当作变量一样进行赋值,也可以作为其他函数的参数或者返回值。这使得函数能够更灵活地应用在各种场景中。 理解JavaScript函数的关键是理解它们的作用和如何使用。函数使我们可以将复杂的代码分解为可管理的模块,并且提供了代码重用的机制。它们也具有作用域的概念,函数内部的变量仅在函数内部可见,这有助于保持代码的整洁和可维护性。 总之,JavaScript中的函数是一种灵活且重要的代码结构,我们可以通过定义、调用和传递函数来实现逻辑的封装、重用和组合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值