函数与指针
指针与函数指针函数:
返回值为指针类型的函数
如:int * fun(int)
#include <stdio.h>
#include <stdlib.h>
#define M 3
#define N 3
int * find_num(int (*p),int num)
{
if(num>M-1)
return NULL;
return *(p+num);
}
void main(int argc,char *argv[]){
int i;
int a={1,2,3,4,5,6,7,8,9};
int *p=find_num(a,1);
if(p !=NULL)
{
for(i=0;i<N;i++)
{
printf("%d ",p);
}
printf("\n");
}
else
printf("can not find\n");
}
4 5 6 函数指针:
类型 (* 指针名) (形参列表)
如: int (*p)(int)
#include <stdio.h>
#include <stdlib.h>
int add(int a,int b)
{
return a+b;
}
void main(int argc,char *argv[]){
int a=3,b=5;
int (*p)(int,int) ;
p=add; //&add &可省略
int ret;
//ret=add(a,b);
ret=p(a,b);
printf("ret=%d\n",ret );
}函数指针数组
类型 (*数组名 [下标]) (形参)
如: int (*arr)(int)
#include <stdio.h>
#include <stdlib.h>
int add(int a,int b)
{
return a+b;
}
int plus(int a,int b)
{
return a-b;
}
void main(int argc,char *argv[]){
int a=3,b=5;
int i;
int ret;
int (*funp)(int ,int);
funp=add;
funp=plus;
for(i=0;i<2;i++)
{
ret=funp(a,b);
printf("ret=%d\n", ret);
}
}指向指针函数的函数指针数组
int *(*funp)(int)
文档来源:51CTO技术博客https://blog.51cto.com/u_10182395/3181853
页:
[1]