C语言函数返回数组实例 c语言函数返回数组的方式

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语言 通过指针从函数返回一个数组,编一道简单的程序解释通过指针从函数返回一个数组
换句话说,返回的并不是数组,而是数组的首地址!
#include stdio.h
int * fun( ) //返回类型int *,与return a中的a的类型相同才可以!
{
static int a[]={1,2,3}; //静态变量 , 函数结束后,不会被系统回收
return a; //返回数组名 , 即数组首地址
【C语言函数返回数组实例 c语言函数返回数组的方式】}
int main()
{
int *p=fun(); //定义整型指针p接收返回地址
int i;
for( i=0;i3;i++ ) //遍历返回的地址中的数据!
printf("%d ", p[i] );
printf("\n");
return 0;
}
c语言中函数能返回一个数组吗不能直接返回一个数组,但是可以用其他方式实现类似功能 。
方法1C语言函数返回数组实例:利用全局变量
分析:全局变量作为C语言C语言函数返回数组实例的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多 。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量 。当函数被调用时,全局变量被更改 , 我们再把更改后的全局变量值应用于主调函数中 。函数被调用后被更改后的全局变量值即为函数的数个返回值 。下面以一个实例演示该方法的应用 。

推荐阅读