函数指针和指针函数
指针函数:
返回值为指针的函数: 例: int * add (int x, int y); // 返回值为指针的带有两个变量的函数
#include <stdio.h>
int sum;
int * add(int x,int y)
{
sum = x+y;
return ∑
}
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 * 型 即也是 空指针.
以上为个人理解.