函数指针与指针函数

来源:互联网 发布:java in是什么意思啊 编辑:程序博客网 时间:2024/06/04 21:42

指针函数TEST

int *f(int a, int b); // 声明指针函数  int _tmain(int argc, _TCHAR* argv[])  {      printf("------------------------------ Start\n");      int *p1 = NULL;      printf("The memeory address of p1 = 0x%x \n", p1);      p1 = f(1, 2);      printf("The memeory address of p1 = 0x%x \n", p1);      printf("*p1 = %d \n", *p1);      printf("------------------------------ End\n");      getchar();      return 0;  }  /*  * 指针函数的定义  * 返回值是指针类型int *  */  int *f(int a, int b) {      int *p = (int *)malloc(sizeof(int));      printf("The memeory address of p = 0x%x \n", p);      memset(p, 0, sizeof(int));      *p = a + b;      printf("*p = %d \n", *p);      return p;  }  

指针函数就是返回一个地址给调用者,用于需要地址的情况。

函数指针TEST

实际上就是把函数的名字给这个函数指针变量。

/*  * 求最大值  * 返回值是int类型,返回两个整数中较大的一个  */  int max(int a, int b) {      return a > b ? a : b;  }  /*  * 求最小值  * 返回值是int类型,返回两个整数中较小的一个  */  int min(int a, int b) {      return a < b ? a : b;  }  int (*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数  int _tmain(int argc, _TCHAR* argv[])  {      printf("------------------------------ Start\n");      f = max; // 函数指针f指向求最大值的函数max      int c = (*f)(1, 2);      printf("The max value is %d \n", c);      f = min; // 函数指针f指向求最小值的函数min      c = (*f)(1, 2);      printf("The min value is %d \n", c);      printf("------------------------------ End\n");      getchar();      return 0;  }  
原创粉丝点击