#include <stdio.h>
//对数组每个数加1
int addOne(int *a,int n){
for(int i=0;i<n;i++)
++a[i];
return 1;
}
//对数组每个数加2
int addTwo(int *a,int n){
for(int i=0;i<n;i++)
a[i]+=2;
return 2;
}
//对数组每个数加3
int addThree(int *a,int n){
for(int i=0;i<n;i++)
a[i]+=3;
return 3;
}
//函数指针作参数
int add(int (*pf)(int*,int),int *a,int n){
return (*pf)(a,n);
}
int main( void )
{
int a[]={1,2,3,4,5,6,7,8,9,10};
printf("\n原始a[]:");
for(int i=0;i<10;i++)
printf("%d ",a[i]); //输出原始数组值
printf("\n函数返回值:%d",add(addOne,a,10));
printf("\n传入addOne后:");
for(int i=0;i<10;i++)
printf("%d ",a[i]); //输出数组值
printf("\n函数返回值:%d",add(addTwo,a,10));
printf("\n传入addTwo后:");
for(int i=0;i<10;i++)
printf("%d ",a[i]); //输出数组值
printf("\n函数返回值:%d",add(addThree,a,10));
printf("\n传入addThree后:");
for(int i=0;i<10;i++)
printf("%d ",a[i]); //输出数组值
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.