C语言中,return语句怎么样返回一个数组?

2024-11-22 23:10:11
推荐回答(5个)
回答1:

首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。告做如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。由于C/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在埋唯其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:

#include "stdio.h"
struct A{
int m[30];//把数组m安排在结构体A中
};
struct A fun(int n){
int i,j,k;
struct A s;//在函数中声明自动型结构体变量s
for(i=0;i for(j=n-1,i=0;i k=s.m[i],s.m[i]=s.m[j],s.m[j]=k;
return s;//返回结构体变量s
}
int main(int argc,char *argv[]){
A a;//主调函数中声明同类型结构体变量a接收函数fun的返回值
int i;
a=fun(15);//用15调用fun(不要大于30,只是举例),将结果赋于a
for(i=0;i<15;i++)//输出看看是不是倒序了...
printf("%d ",a.m[i]);
printf("\n");
return 0;
}

运行结果如下:

回答2:

可以反回仔粗唤“堆”(非栈)上凳岁的数组的首念凯地址.如:int *fun(int s){int *a;a=(int*)new char[s*sizeof(int))];return a;}

回答3:

可以将函数类型定义为指针类型,return返回数组指针

回答4:

c语言的函数中不能返回多个参数,如果要返回数组,可以返回数组的首地址

回答5:

int[] f(){
int[] a = {1,2,3};
return a;
}