C语言函数指针

概念区分

  • char *fun(char *p1, char *p2)表示返回值为char类型指针的函数
  • char *(*fun) (char *p1, char * p2) fun不是函数名称,而是指针变量————指向函数的指针变量,该函数返回值也是一个指针。

用法

    #include<stdio.h> 
    #include<string .h>

	char * fun(char *p1, char *p2) {
		int i = 0;
		i = strcmp(p1, p2);

	      if(i == 0    ) {
		    return p1;
	    }else {
		    return p2;
	    }	
         }

    int main() {
          char * (*pf)(char * p1, char * p2);   
      pf = &fun;  
      (*pf) ("aa","bb");
      return 0;

     }

其中pf是一个函数指针,使用的时候可以将pf指针指向函数fun
这里可以写成是fun 或者 & fun,因为函数被编译之后实际上就是一个地址值,所以本质上没有什么区别。

posted @ 2018-05-14 16:35  HaotianMichael  阅读(155)  评论(0编辑  收藏  举报