函数(2)从函数中返回

<1>从函数中返回值

————————return:如果我们所定义的函数要返回一个结果,那么我们就需要用return将这个结果交给所调用的函数。

(1)注意:返回类型

我们以一段代码为例:

int isprime(int i){
int ret=1;
int k;
for(k=2;k<i-1;k++ ){
if(i%k==0){
ret=0;
break;
}
}
return ret;
}

在这段代码中,isprime有一个返回的类型为int,也就是说这个isprime会返回一个int的结果,所以我们需要安排一个return语句来返回这个结果。

(2)单一出口

我们以一段代码为例:

int max(int a,int b){
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
return ret;
}

在这段代码中,我们可以直接将if-else语句中的ret=a/b换成return a/b;但是这样就不符合单一出口的要求,单一出口意为仅有一个return。

(3)return 语句

  • 一旦出现return 语句,就意味着函数停止执行,并送回一个值;
  • return有两种表达形式:1.return;2.return 表达式;
  • 同时一个函数里可以出现多个return语句,我们以示例的代码为例进行修改
    ————————————————
    int max(int a,int b){
    //int ret;————在此处我们不再选择定义一个变量ret,
    if(a>b){
    return a;——————我们在这里对ret a进行修改,直接返回a值,而不再通过ret变量
    }else{
    return b;——————这里返回b值同上返回a值
    }
    }//return ret;————————我们在前面直接返回a,b的值,这里就不用重复返回

注意:这种方法并不推崇,因为多个return会导致程序有多个出口,不利于后续对出口进行修改。

(4)补充————在函数可以返回值后,我们可以将值赋给变量;还可以将值再传递给函数;甚至可以将其舍弃。

1.接下来我们以一段代码为例

#include<stdio.h>

int max(int a,int b){
if(a>b){
return a;
}else{
return b;
}
}
int main(){
int a,b,c;
a=5;
b=6;
c=max(10,12);
c=max(a,b);
c=max(c,23);
max(23,45);——————//在此处我们仅调用了函数,但是并没有将函数交给任何变量,编译仍然成功
printf("%d\n",max(a,b));
return 0;

}

——————由此可见我们调用函数的目的不一定是注意返回的结果,而是观察函数调用的副作用(在函数执行中进行的操作);

(5)没有返回值的函数

  1. void函数名(参数表);
  2. 不能使用带值的return;
  3. 可以没有return;
  4. 调用的时候不能做返回值的赋值

如果函数有返回值,则必须使用带值的return。

posted @   瑜阳  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示