函数指针和指针函数

别说谁变了你拦得住时间么 提交于 2019-12-08 23:40:32

读了大佬的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 str[],char b) = char_contains;

    if (p(str,'c')) {
        printf("%s contains char c\n",str);
    }else{
        printf("%s does not contains char c\n",str);
    }

    return 0;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!