c语言return能不能有2个以上返回值

作者&投稿:真唯 (若有异议请与网页底部的电邮联系)
C语言中return语句怎样返回两个或多个值~

return语句不能直接返回多个值。如果想通过函数内部返回多个值的话,可是使用以下代码:
#include
//定义一个s
typedef struct _a{
int a;int b;
}A,*PA;//函数返回结构体变量,它里面就可以包含多个值
PA func(){
PA a = (A*)malloc(sizeof(A));a->a = 2;
a->b = 3;return a;
}int main()
{PA test = func();
printf("%d %d
", test->a, test->b);
delete test;return 0;
}

扩展资料
#include
void min_max(int *ptr,int n)
{
int *temp;
for(int i = 0; i < 5; i++)
{
if(*(ptr) > *(ptr+i))
{
*temp = *(ptr);
*(ptr) = *(ptr+i);
*(ptr+i) = *temp;
}
if(*(ptr + n-1) < *(ptr + i) )
{
*temp = *(ptr+n-1);
*(ptr+n-1) = *(ptr+i);
*(ptr+i) = *temp;
}
}
}
int main()
{
int a[5];
for(int i = 0; i < 5 ; i++)
scanf("%d",&a[i]);
min_max(a,5);
printf("%d %d",a[0], a[4]);
return 0;
}
参考资料:百度百科 return (C语言语句)

不能,函数的返回值只能有一个,所以程序执行到第一个return就直接跳出,没有执行return d;可以使用指针,a,b为入口参数,c,d为出口参数,这样就可以解决多个返回值的问题,希望能帮到你。
#include
void f(int a,int b,int *c,int *d)
{

*c = a + b;
*d = a - b;

}
int main()
{
int a = 5;
int b = 3;
int c=0,d=0;
f(a,b,&c,&d);
printf("%d %d",c,d);
return 0;
}

1 return只能返回一个变量,但该变量里是可以包含多个值的,即能满足"有2个以上返回值"的要求

2 方法

    采用数组或结构体等复合数据类型来作为函数的返回值类型

3 示例

#include<stdio.h>
#include<malloc.h>

//方法1: 返回一个包含两个值的数组
int* fun1(){
int *result = (int*)malloc(2 * sizeof(int));
result[0] = 5;
result[1] = 6;
return result;
}
//方法2: 返回一个包含两个成员的结构体
struct Jiegouti{
int a;
int b;
};
struct Jiegouti fun2(){
return{ 5, 6 };
}

int main(){
int *res1 = fun1();
struct Jiegouti res2 = fun2();
printf("%d %d
", res1[0], res1[1]);
printf("%d %d
", res2.a, res2.b);

free(res1);
getchar();
return 0;
}

4 运行结果



C系列语言是不能的,只能返回一个返回值。 但纠正一下三楼的说法,不是所有语言都是这样,比如matlab就可以返回多个。 如果在C++语言中需要返回多个值可以有以下三种方法: 1、返回一个数组的首地址,那么可以把整个数组的元素返回。 例如: double* a; a=f(); double* f() { b=(double*)malloc(8*2); b[0]=1; b[1]=2; return b; } 但是多次调用还要考虑释放内存问题 2、传入指针 例如: double a[2]; f(a) void f(double *a) { a[0]=1; a[1]=2; } 3、输入引用,可以返回不同类型变量 例如: int a; double b; f(a,b) void f(int &a,double &b) { a=1; b=2; }

不是,要想返回2个以上返回值,建议返回值用数组或者参数用指针模式,直接改写


在c语言中return语句主要做什么的,能举个例子吗
在c语言中return语句主要做什么的,能举个例子吗 return返回一个数值的意思就是把return <表达式>后面表达式的值返回给调用他的函数。举个例子: int sum(int i,int j) { return i+j; printf ("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了"); } main() ...

return()语句能返回多个值吗
例1、:x除以y的余数与商的函数 defF1(x,y):a=x%y b=(x-a)/y return(a,b)#也可以写作returna,b (c,d)=F1(9,4)#也可以写作c,d=F1(9,4)printc,d 结果显示:1,2 Python与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明。变量...

c语言return能不能有2个以上返回值
1 return只能返回一个变量,但该变量里是可以包含多个值的,即能满足"有2个以上返回值"的要求 2 方法 采用数组或结构体等复合数据类型来作为函数的返回值类型 3 示例 include<stdio.h>#include<malloc.h>\/\/方法1: 返回一个包含两个值的数组int* fun1(){int *result = (int*)malloc(2 * size...

计算机C语言中return语句是什么意思
作用1:表示返回,这个程序可以结束了,可以不带参数,如果你的成员运行到这里,你就不往后运行了,可以加一个return语句,就不会再执行了。作用2:返回指定类型的值,在定义函数的时候不是有 int af();int 这里是返回值,return 后面接的就是这个返回值,这个函数执行后就可以给别的变量赋值了,他...

C语言中return的含义?
分类: 电脑\/网络 >> 程序设计 >> 其他编程语言 问题描述:谁给我用通俗的语言解释一下?我刚学C不久,return是返回一个数值,但什么叫返回一个数值?我以前不打return(说是可以打return=0也可不打),也没什么错误,return到底在哪里让我看出返回了值呢?返回有什么用呢?解析:return返回一个数值...

在c语言中,return的作用和用法
一般return语句用于函数返回值,当外界调用该函数需要知道函数执行情况的时候,就需要用返回值来告诉调用者。而当调用者不需要知道执行情况,只需要去执行该函数的时候,那就不需要返回值。return的作用1:表示返回,这个程序可以结束了,可以不带参数。如果你的成员运行到这里,你就不往后运行了,可以加一...

C语言的return能返回地址值吗?
可以。返回指针实际上就是地址。例如:include<stdio.h> include<stdlib.h> \/\/ 动态分配 n 个字节,返回 char char *f(char *name, int n){name = (char*) malloc(sizeof(char)*n);return name;} \/\/ 动态分配 n 个字节,返回 void void *v(char *name, int n){name = (char*) ...

C语言中的什么是return值?
返回值是C语言中一个重要的概念,指的是函数执行完以后return的结果。在一般的C教材中,都有比较详细的介绍。返回值的形式跟函数的类型有关,返回值可能是一个数据,一个指针,一个字符串等等。在调用这个函数的地方,可以根据返回值判断函数的执行是否正确或获取想要的信息。举个例子来说吧,int add(...

C语言中 return函数 都可以返回什么东东?
如果函数的类型不是void型,就一定要用return 返回一个与函数类型相同的数值或变量,即返回值;反之,可以不用return,或使用无任何返回值的return。例如:1.非void型 int f1(){ int i=1;return 1;\/\/return(i); \/\/这样也可以 } 2.void型 void f2(){ int i=1;\/\/return;\/\/这样也可以,不...

C语言中return怎么理解?
Status InitList_Sq(SqList &L)status是返回值的类型, 其实一定在前面有typedef A status,status 就是A(A 为int,float,或你自己定义的类型)initlist_Sq 是函数名,还有括号里的为什么要加上sqlist。1、如果指针指向 static 变量,那么用这个函数的程序员牢牢记住“下次调用这个函数以后,上次的返回...

大荔县18966016931: c语言return能不能有2个以上返回值 -
莫季巴欣: 不是,要想返回2个以上返回值,建议返回值用数组或者参数用指针模式,直接改写

大荔县18966016931: c语言一个函数能否有两个返回值 -
莫季巴欣: 应该是正确的,因为系统可能把a,b作为一个逗号表达式,返回逗号表达式的值b,不行的话,return (a.b);试试 你的语句可能正确,但你想让它返回a和b不可能,一个return 语句只返回一个值,执行完return,程序就结束

大荔县18966016931: C语言中,return语句可以返回多个值么? -
莫季巴欣: 额,,这个不可以,可以返回一个或者不返回

大荔县18966016931: C书上说一个函数中可以有一个以上的return语句,可函数不是只能有1个返回值的? -
莫季巴欣: 可以有多个return语句,但是最终得到执行的只能是一个,例如 int myabs(int para) {if (para < 0) {return -para;} else {return para;} }

大荔县18966016931: 一个C语言程序中有最多几个return? -
莫季巴欣: 想写出几个就写出几个,但请楼主记住只有一个return语句执行并被返回.例如: int num() { int a=1,b=2,c=3; return a; return b; return c; } 当程序执行到return a 时将会把a的值返回,此句以下的语句不被执行.

大荔县18966016931: C语言中自定义的函数可以一次返回多个值吗?就是用return一次返回多个值 -
莫季巴欣: 这个目前C语言还不支持.目前C语言的返回值只能是一种类型.如果想返回多个值的话,那楼主可以定义一个结构体类型,将结构体类型返回就可以了.实例代码如下:#include <stdio.h>#include <stdlib.h> struct return_test { int a; int b; }; struct ...

大荔县18966016931: C或C++中一个函数能不能返回多个值? -
莫季巴欣: C系列语言是不能的,只能返回一个返回值.但纠正一下三楼的说法,不是所有语言都是这样,比如matlab就可以返回多个.如果在C++语言中需要返回多个值可以有以下三种方法:1、返回一个数组的首地址,那么可以把整个数组的元素返回....

大荔县18966016931: c语言一个函数返回多个值 -
莫季巴欣: 函数最终只能返回一个值!!! 你可以用“数组或指针”; 如 #include<stdio.h> void ser(int *x,int *y) {*x=20;//把改变后的结果传给主函数*y=30; } void main() {int a,b;a=1,b=2;ser(&a,&b);printf("a:%d b:%d\n",a,b);}

大荔县18966016931: C语言中return语句有多个 怎么理解 -
莫季巴欣: return 表示函数结束 如果多个并列的 return 语句 那是多条执行路径 最后只执行一个..根据条件不同 如果是串行的 比如 int fun() { return 1; return 2; } 那么 只执行第一句 因为return 表示函数结束 return 后面可以不带任何东西(有些语言中是这样) 就表示强制结束该函数

大荔县18966016931: 编程中C语言函数想返回2个值该怎么办? -
莫季巴欣: 楼下真牛逼,恐怕是怪兽大学毕业的吧. 推荐做法 把函数声明写成这样int func(int* ret1,int* ret2) 这样就可以用ret1和ret2来返回信息了,事实上,scanf函数就是这样的一个例子. 方案二呢,可以将多个返回值打成一个结构体,然后作处理,其实这种方式不怎么好,因为结构里的两个变量很可能没什么联系,而你却把他们打包在一起.其实,等你学得好了,你会发现其实还有很多方法都可以达到目的,因为c语言就是如此强大而灵活.最后,警告一下不要用 return a,b之类的语句.因为a,b会被解释为一个逗号表达式,它最终的值就是b的值,所以return a,b;就等同于return b;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网