1.从函数中返回值
如果你的函数要返回一个结果,那么你就需要用return把那个结果交给调用它的地方
例一:
//素数求和
int isPrime(int i)//idPrime有一个返回的类型,是int类型,这个isPrime会返回一个int的结果
//所以要安排一个return语句,让它去返回一个int
{
int ret=1;
int k;
for(k=2;k<i-1;k++){
if(i%k==0){
ret=0;//发现不是素数,则让ret=0
break;
}
}
return ret;
}
例二:
int max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
return ret;
}
return语句做两件事,第一件,一旦遇到return, 停止函数的执行,不再向下进行,如果return后面有值,要送回去一个值
所以return有两种写法:
return;
return 表达式;,它要把表达式的值交给调用这个函数的地方
int max(int a,int b)
{
int ret;
if(a>b){
ret=a;
}else{
ret=b;
}
return ret;
}
int main()
{
int a,b,c;
a=5;
b=6;
c=max(10,12);
c=max(a,b);
c=max(c,23);
printf("%d\n",max(a,b));//6
return 0;
}
2.一个函数里面可以出现多个return语句,而且这些return也不一定要放在最后
这样做没有错,但不符合单一出口的理念,
不好在于,这样的函数有很多条语句可以用来离开,有很多条语句可以用来传递值到外面,
将来如果想要对这些出口做修改,就要修改很多地方
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);
c=max(max(c,a),5);//也可以把这个值再传递给函数,如此句max拿另外一次max的使用来作为它的参数
printf("%d\n",max(a,b));
max(12,13);//甚至可以丢弃
//因为有的时候,调用函数的目的并不是要去看它返回给我们的结果,而是要它的副作用,
//在这个函数执行的过程当中,可能给你做一些别的事情,比如说输出个什么东西等等
return 0;
}
3.没有返回值的函数
void 函数名(参数表) void表明这个函数不返回任何的结果
不能使用带值的return
可以没有return,因为当函数运行到它的最后一行,结束的大括号}以后,它自己就会回去
调用的时候不能做返回值的赋值,因为它不返回值嘛,所以你就不能把它的值交给别的什么变量或者参与什么运算
注意:如果函数有返回值,则必须使用带值的return
void sum(int begin,int end)
{
int i;
int sum=0;
for(i=begin;i<=end;i++){
sum+=i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}
来源:CSDN
作者:变女侠吧
链接:https://blog.csdn.net/weixin_45087108/article/details/104480829