C语言 数组返回值 问题~
gaohu0926所言正确,我具体补充三点。
创新互联建站专业为企业提供金安网站建设、金安做网站、金安网站设计、金安网站制作等企业网站建设、网页设计与制作、金安企业网站模板建站服务,10年金安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1、函数GetItemPrice声明为:
int GetItemPrice(int price[],FILE *file)
即返回值为int类型。而实际上,该函数返回price,此变量为int *类型,因此出现类型不匹配的错误信息:“ 'int ' differs in levels of indirection from 'int *'”。
2、如果需要获得楼主所说的“想把PRICE的整个数组的值返回”,那么在调用函数GetItemPrice时使用如下代码:
GetItemPrice(price, stokefile);
而不是price[Nitems] = GetItemPrice(stockfile);
并且在函数GetItemPrice中,返回0,而不是price。
3、函数GetItemPrice中尚存在一个小BUG:
fscanf(file,"%d",price[i]);
应该写为:
fscanf(file,"%d",price[i]);
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语言函数返回数组?
在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语言函数调用关于数组的返回
这个不需要返回个数组!
你只要在主函数中,这样调用 order(a,count); 就行了!
其中a是数组名,count是数组大小。就是把数组的地址传给函数,
这样在排序函数中操作的就是主函数中的数组了
另外兄弟,我发现你的排序算法好像是错误的吧,给你一个程序参考:
void sort(int arr[],int n)
{
//冒泡法非递减排序
int i,j,temp;
for(i=0;in-1;i++)
for(j=0;jn-i-1;j++)
{
if(arr[j]arr[j+1])
temp=arr[j],arr[j]=arr[j+1],arr[j+1]=temp;
}
}
你按照上面的 调用方式,就相当于返回了排序好的数组呀!!!!!!!
因为传的是地址值!,你如果把数组声明为全局变量,就根本不需要往排序的函数中传递数组了
C语言里返回一个数组的函数该怎么样写
C语音没有直接返回一个数组的说法,要得到一个数组的返回值,一般做法有几点:
传入一个指向数组指针变量,在函数内部对指针地址内的值进行修改
函数内部申请动态内存,将数据保存到这块内存后返回该动态内存的指针,最后需要手动释放这块内存
使用静态变量(这个方法不建议使用,静态、全局变量很容易导致多线程编程出问题)
网站栏目:c语言获取数组函数返回值 c++ 返回数组的函数
当前URL:http://scgulin.cn/article/docccge.html