扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.h
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、曲阳ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的曲阳网站制作公司
#include stdlib.h
int ave(int n,int 穗腔*a);
int main()
{
int i,n,*a;
printf("please input number n:"禅消);
scanf("%d",n);
a=(int *) malloc(n*sizeof(int));
printf("贺族知please input %d numbers:\n",n);
for(i=0;in;i++)
scanf("%d",a+i);
printf("The average number is %d\n",ave(n,a));
}
int ave(int n,int *a)
{
int i,sum=0;
for(i=0;in;i++)
sum+=*(a+i);
return sum/n;
}
其实,函数指针确实不是“指向函数的指针”
函数指针,就是函数指针,加不加*没有实际意义嫌铅。
二楼的那个:
c=(*p)(a,b);
也可以写成
c=(****************************************************p)(a,b);
或者
c=p(a,b);
你说它瞎纤指向什么?
PS,加*有特殊的用途,初学者就芹神好算了
#includestdio.h毕陵
int *d_bubblesort(int a[],int n)//数组长度为n的冒泡降序排序
{
int i,j;
int temp;
for(i=0;i扰宽n;i++)
{
for(j=n-1;ji;j--)
{
if(a[j]a[j-1])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
return a;
}
void main()
{
int i;
int *p=NULL;
int a[10]={6,5,4,1,2,3,9,8,7,10};
int *(*fun)(int*,int);
fun=d_bubblesort;
p=fun(a,10);
for(i=0;i10;i++)
{
printf("%d\t"缓数亮,p[i]);
}
}
并不是不规范的问题,你子程序写法只逗歼能在子程序中输出正确的数据,而在主函数中无法得到交换过困指历的x和y的值。参考程序运用指汪搜针让子程序去读写a和b的值,在子程序执行完成后,a和b的值确实得到了交换。
你的程序中子程序采用的不是指针类型参数,这样子程序无法将交换过后的值传回来。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流