函数指针和指针函数

1.函数指针

函数指针是指向函数的指针变量,即本质是一个指针变量。

例如:

int (*f)(int x);

double (*ptr)(double x);

例如

 

#include <stdio.h>

int  max(int   a,int   b)
{
    if(a>b)
        return a; 
    else 
        return b; 
}

int main()
{
    int(*pmax)();
    int  x,y,z;
    pmax=max;
    printf( "input   two   numbers:\n"); 
    scanf("%d%d",&x,&y);
    z=(*pmax)(x,y); 
    printf( "maxmum=%d ",z); 

    return 0;
} 

 

 

 

2.指针函数

它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。

例如,

int func(int x);   /* 声明一个函数 */

int (*f) (int x);    /* 声明一个函数指针 */

f=func;            /* 将func函数的首地址赋给指针f */

 

例如

 

#include <stdio.h>

int *pmax(int *a,int *b)
{
    if (*a > *b)
        return a;
    else 
        return b;
}

int main()
{
    int x,y,z;
    printf("input two numbers\n");
    scanf("%d%d",&x,&y);
    z = *pmax(&x,&y);
    printf("maxmum=%d\n",z);

    return 0;
}

 

posted @ 2012-04-15 10:54  四月不留  阅读(181)  评论(0编辑  收藏  举报