函数指针和指针函数

读了大佬的blog,清晰了一点...

· 指针函数,返回指针的函数

int *fun(int x,int y);

在调用指针函数时,需要一个同类型的指针来接收其函数的返回值。

· 函数指针,指向函数的指针

int (*fun)(int x,int y);

把一个函数的地址赋值给他

fun = &Function;
fun = Function;

调用

x = (*fun)();
x = fun();

函数指针练习:编写一个函数char_contains(char str[],char c),如果字符串中包含字符c,则返回1,否则返回0,并在main函数中使用函数指针调用。

#include <stdio.h>

int char_contains(char str[],char c)

{

    for(int i = 0; i < strlen(str); i++)

    {

        if(str[i]=='c')

        return 1;

    }

    return 0;

}

int main() {

    char str[] = "abcdef";

    int (*p)(char [],char ) ;

   p= char_contains; if (p(str,'c'))

   { printf(
"%s contains char c ",str); }

  else

  { printf("%s does not contains char c ",str); } return 0; }
#include <stdio.h>
#include <string.h>
 
char * fun(char * p1,char * p2)
{
  int i = 0;
  i = strcmp(p1,p2);
 
  if (0 == i)
  {
    return p1;
  }
  else
  {
    return p2;
  }
}
 
int main()
{
  char * (*pf)(char * p1,char * p2);
  pf = &fun;
  (*pf) ("aa","bb");
  return 0;
}
Aim: Buaa
原文地址:https://www.cnblogs.com/calm-blogme/p/12008659.html