C语言 一文读懂函数指针,指针函数的区别

  • Post author:
  • Post category:其他




指针函数

字面理解:本质是一个函数,返回的是一个指针(地址)给调用者

声明:

int* FunctionToPointer(int x)

意义:

函数

FunctionToPointer

是一个具有一个int类型的参数,返回值为int类型的指针 的

函数

代码举例:

int* larger(int*, int*);//函数 larger 是一个具有两个指向整型的指针的参数,返回值为int类型的指针 的 函数。

void main()
{
    int a = 15;
    int b = 92;
    int *p;
    p = larger(&a, &b);//调用 larger 函数,返回 一个指向 int 类型的 指针 p, 返回的是 p 的地址
    printf("%d is larger",*p);//输出为 地址p 指向的值
}

int* larger(int *x, int *y)
{
    if(*x > *y)
        return x;
    else
        return y;
}



函数指针

字面理解:本质是一个指针,这个指针指向一个函数。

声明:

int (*PointerToFunction)(int x)

意义:

指针

PointerToFunction

是一个指向具有两个int型参数,返回值为int型的函数 的

指针

代码举例:

int sum(int x, int y)//sum 函数 是一个具有两个int型参数,返回值为int型的函数
{
    return x+y;
}

int main( )
{
    int (*fp)(int, int);//fp 是一个指向具有两个int型参数,返回值为int型的函数 的 指针
    fp = sum;// 指针fp指向 sum函数
    int s = fp(10, 15);
    printf("Sum is %d", s);

    return 0;



版权声明:本文为keke_Memory原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。