c语言,返回数组的函数 c语言返回数组的函数类型

C语言中有没有返回数组类型的函数?

看来你是还没有理解数组的概念,数组名实际上就是指向该数组第一个元素的指针,比如说:

你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都网站制作、做网站、企业网站建设、手机网站制作、网页设计、品牌网站制作、网页制作、做网站、建网站。创新互联公司拥有实力坚强的技术研发团队及素养的视觉设计专才。

int

array[3]={1,2,3}的一个数组,这里的array实际上是一个指针,指向了这个数组的第一个元素。这时候你的*array

=

1,*(array

+

1)

=2,*(array

+

2)

=

3。

这时候你应该知道,所谓的返回数组和返回指针实际上是一个概念。

int

*

retInt()

{

int

array[3]={1,2,3};

return

array;

}

实际上就是返回了一个数组。你的最后一个问题,指定数组类型,实际上只要指定指针类型就可以了。

还有一种方法就是楼上的兄弟说的了,定义一个新的数据类型存放数组,函数返回该数据类型也就相当于返回了一个数组。

(上面的函数中数组有作用域问题,仅做说明使用。)

c语言函数返回数组

你好!

将函数采用指针的形式返回平均值

注意看后面的注释

#includestdio.h

int main()

{

float *student_aver(float array[3][3]);   // 改成指针的形式输出 

float score[3][3];

float *a;

int i,j;

printf("请输入学生各科的成绩:");

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%f",score[i][j]);

printf("每个学生的平均成绩分别为:");

a=student_aver(score);                // 指针 a 接收函数的返回值 

for(i=0;i3;i++)                      // 打印出平均值 

printf("%.2f ",a[i]);

return 0;

}

float *student_aver(float array[3][3])    // 改成指针的形式输出

{

int i,j;

float sum,a[3];

for(i=0;i3;i++)

{

sum=0;

for(j=0;j3;j++)

sum=sum+array[i][j];

a[i]=sum/3;

   }

return a;                             // 输出数组 a 

}

C语言函数中返回数组

你的程序:

main()

{

int

b[3];

b=pop();

}

int

*

pop()

{

int

a[3],i;//定义的局部变量a[3]在调用完之后自动释放其空间

for(i=0;i3;i++)

a[i]=i;

return

a;//返回的是指向数组a[3]的地址而不是数组a[3]本身

}

注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b接收的应该是指向数组a[3]的地址,而数组a[3]在方法调用完后又被释放了,所以b接收不到数组a[3],故出错。

正确的程序:

#includestdio.h

main()

{

int

b[3];

pop(b,3);

}

void

pop(int

a[],int

n)//该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变

{

int

i;

for(i=0;in;i++)

a[i]=i;

}

c语言中怎样返回一个数组?

在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。

在大多数情况下,一维数组和一维指针是可以通用的。

比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。 代码可以写成如下形式:

int *int_array_create(int n)//参数n为数组元素个数

{

int *r; 

if(n=0) return NULL;//参数错误

r = (int *)malloc(sizeof(int)*n);//申请内存空间,大小为n个int长度。

return r;//返回得到的整型数组的指针。 

}


标题名称:c语言,返回数组的函数 c语言返回数组的函数类型
文章URL:http://hbruida.cn/article/doospsh.html