评论

收藏

[C++] 函数与指针

编程语言 编程语言 发布于:2021-07-26 15:26 | 阅读数:298 | 评论:0

指针与函数
指针函数:
返回值为指针类型的函数
如:int * fun(int)
#include <stdio.h>
#include <stdlib.h>

#define M 3
#define N 3
int * find_num(int (*p)[N],int num)
{
  if(num>M-1)
    return NULL;
  return *(p+num);
}
void main(int argc,char *argv[]){
  int i;
  int a[M][N]={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[i]);
    }
    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[N])(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[2])(int ,int);
  funp[0]=add;
  funp[1]=plus;
  for(i=0;i<2;i++)
  {
    ret=funp[i](a,b);
    printf("ret=%d\n", ret);
  }
}
指向指针函数的函数指针数组
int *(*funp[N])(int)


关注下面的标签,发现更多相似文章