指针函数和函数指针的区别

时间:2025-05-09 07:50:20

1、指针函数:是一个函数,返回值是一个指针,要注意返回的这个指针不能是局部变量。可以使用static修饰的变量或者申请堆空间的方式等等。

2、函数指针:是一个指针,是一个指向函数的指针,是调用函数的入口。

#include <>

int *func(int a, char *b)
{
    printf("成功进入%s函数体-----\n",__func__);
    static int c = 1;
    return &c;
}
int main(int argc, char const *argv[])
{
    printf("主程序开始-----\n");
    //调用func
    int * (*p)(int,char *) = func;
    int *ret_val = p(2,"hello");
    printf("成功得到C的返回值=%d\n",*ret_val );
    return 0;
}

运行结果:
yy@super:/mnt/c/Users/ASUS/Desktop/共享文件/test$ ./
主程序开始-----
成功进入func函数体-----
成功得到C的返回值=1