函数指针和指针函数

指针函数:

  返回值为指针的函数: 例:  int * add (int x, int y); // 返回值为指针的带有两个变量的函数

#include <stdio.h>

int sum;
int * add(int x,int y)
{
    sum = x+y;
    return &sum;
}
int main(void)
{
    int a,b;
    int *p;
    printf("enter two int number:\n");
    scanf("%d %d",&a,&b);
    p = add(a,b);
    printf("the sum of %d and %d is %d\n", a,b,*p);
    return 0;
}

 

函数指针:

  指向函数的指针. 例:  int (*p) (int x, int y);  //p变量为一个指针,其指向 一个返回类型为整型 且带有两个整型变量的函数.

#include <stdio.h>

int sum;
int  add(int x,int y)    
{
    sum = x+y;
    return sum;        //与上例不同
}
int main(void)
{
    
    int a,b;
    int (*p) (int,int);
    printf("enter two int number:\n");
    scanf("%d %d",&a,&b);
    p = add;

    printf("the sum of %d and %d is %d\n", a,b,(*p)(a,b));      //指针的引用
    return 0;
}


现在:

pthread_create( pthread_t *thread, pthread_attr_t  *attr, void *(*function)(void *), void *arg);

其中 :   void * (*function)(void *) 作如下理解:

function 是个函数指针, 它指向的函数: 返回值 为: void *型  即 空指针, 参数是 void * 型 即也是 空指针.


以上为个人理解.

 

posted @ 2016-03-03 03:28  孤灯下的守护者  阅读(186)  评论(0编辑  收藏  举报