c语言多个返回值
1. c语言中调用函数如何返回多个值
建立数组,返回指针。
在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。需要注意的是,要返回数组首地运首掘址,那么返回的值不可以是局部变量,有如下几种是可以的:
a) 使用静态局部变量存储,并返回地址;
b) 使用全局变量存储,返回地址;
c) 函数中动态分配内存,并返回申请到的地址,此种方法需要注意,在使用后需要释放;
d) 在参数中传入数组地址,并返回。即返回的实际上是主调函数中的变量地址。
(1)c语言多个返回值扩展阅读
通常我们希望通过函数调用使主调函数能得到一个确定的值,这就是函数的返回值。函数的返回值是通过函数中的 return 语句获得的。return 语句将被调函数中的一个确定的值带回到主调函数中,供主调函数使用。
函数的返回值类型是在定义函数时指定的。return 语句中表达式的类型应与定义函数时指芹氏定的返回值类型一致。如果不一致,则以函数定义时的返回值类型为准,对 return 语句中表达式的类型自动进行转换,然后再将它返回给主调函数使用。
在调用函数时,如果需要从被调函数返回一个值供主调旁核函数使用,那么返回值类型必须定义成非 void 型。此时被调函数中必须包含 return 语句,而且 return 后面必须要有返回值,否则就是语法错误。
如果函数有返回值,那么 return 语句后面的括号可以不要,比如“return(z);”等价于“return z;”。若不需要返回值则可以不要 return 语句。
需要强调的是,一个函数中可以有多个 return 语句,但并不是所有的 return 语句都起作用。执行到哪个 return 语句,就是哪个 return 语句起作用,该 return 语句后的其他语句就都不会执行了。
2. C语言中主函数是否有返回值,如果有,最多有几个
c语言中, 只要是函数,返回值只能有一个,要想使用这个函数同时改变多个数值,可以使用指针。主函数也不例外,c语言中主函数一般是void类型,即无返回值,如果你是软件专业,后续学习的c++将介绍有返回值的main主函数,我也是软件专业,有问题可以一起讨论,祝你学习顺利。
3. C语言中return语句怎样返回两个或多个值
return语句不能直接返回多个值。如果想通过函数内部返回多个值的话,可是使用以下代码:
#include<stdio.h>
//定义一个s
typedefstruct_a{
inta;intb;
}A,*PA;//函数返回结构体变量,它里面就可以包含多个值
PAfunc(){
PAa=(A*)malloc(sizeof(A));a->a=2;
a->b=3;returna;
}intmain()
{PAtest=func();
printf("%d%d ",test->a,test->b);
deletetest;return0;
}
(3)c语言多个返回值扩展阅读
#include <stdio.h>
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;
}
4. c语言中调用函数如何返回多个值
1、通过使用指针,在函数调用时,传递带有地址的参数,并使用指针更改其值;这样,修改后的值就会变成原始参数。
5. c语言return能不能有2个以上返回值
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;
returnresult;
}
//方法2:返回一个包含两个成员的结构体
structJiegouti{
inta;
intb;
};
structJiegoutifun2(){
return{5,6};
}
intmain(){
int*res1=fun1();
structJiegoutires2=fun2();
printf("%d%d ",res1[0],res1[1]);
printf("%d%d ",res2.a,res2.b);
free(res1);
getchar();
return0;
}
4 运行结果
6. c语言函数如何返回多个值
c语言察弊函数只能最多有一个返回值。我们以一个数据运早枯算函数作为实例讲解:
使用指针返回额外数据:定义指针参数,将结果通过指针返回。
如果有很多类型相同的数据,如何返回数组呢?c语言也只能借助指针返回数组。
使用结构体返回:如果返回多个数据,并且各个数据类型都不相败睁族同。那么只能通过结构体返回。
使用结构体指针返回:直接返回结构体,程序执行效率会受到影响。因为需要复制结构体数据,如果结构体数据比较大,复制操作会损耗程序性能。
通过使用结构体指针,我们也可以返回多个数据结果。
在c++中,除了使用指针,通常使用引用返回多个数据。与指针相比,使用引用时不用担心函数调用者传入不符合预期的指针。