在C語言中指針函數(shù)和函數(shù)指針是兩個不同的概念,不能混淆。
在延川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都做網(wǎng)站 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,延川網(wǎng)站建設(shè)費用合理。
指針函數(shù)本質(zhì)上是函數(shù),是一個返回類型為指針的函數(shù),如:
int* max(int *array,int n)
{
//找最大值的地址
return 最大值的地址;
}
max就是一個指針函數(shù)。
而函數(shù)指針本質(zhì)上是指針,是指向函數(shù)的指針,如:
int (*funp)(int a,int b);
funp就是一個函數(shù)指針,可以用它指向一個返回類型為int、有兩個int類型的參數(shù)的函數(shù)。
#includestdio.h
1.申明數(shù)組
a[5],下標(biāo)是應(yīng)該從0~4的;
2.進行排序時需要用2個變量進行冒泡排序;
3.scanf時%d后面不需要空格。
程序修改如下:
void
pa(int
*a,int
n)
{
int
i,j;
int
t;
for(i=0;in;i++)
for(j=0;jn-i-1;j++)
if(*(a+j)*(a+j+1))
{
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)
=
t;
}
}
void
main()
{
int
a[5],i;
for(i=0;i5;i++)
scanf("%d",a[i]);
printf("未排序前的數(shù)列為:\n");
for(i=0;i5;i++)
printf("%d
",a[i]);
pa(a,5);
printf("排序后的數(shù)列為:\n");
for(i=0;i5;i++)
printf("%d
",a[i]);
}
#include?stdio.h
#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;
}