700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C七:指向函数的指针 ------ 函数指针(function pointer)

C七:指向函数的指针 ------ 函数指针(function pointer)

时间:2024-05-22 08:47:53

相关推荐

C七:指向函数的指针 ------ 函数指针(function pointer)

函数具有可赋值给指针的物理内存地址,一个函数的函数名就是一个指针,它指向函数的代码。一个函数的地址是该函数的进入点,也是调用函数的地址。函数的调用可以通过函数名,也可以通过指向函数的指针来调用。函数指针还允许将函数作为变元传递给其他函数。

不带括号和变量列表的函数名,这可以表示函数的地址,正如不带下标的数组名可以表示数组的首地址。

定义形式:

类型 (*指针变量名)(参数列表);

例如:

int (*p)(int i,int j);

p是一个指针,它指向一个函数,该函数有2个整形参数,返回类型为int。p首先和*结合,表明p是一个指针。然后再与()结合,表明它指向的是一个函数。指向函数的指针也称为函数指针。

int LocateElem(SqList L, ElemType e, Status(*compare)(ElemType, ElemType)){// 初始条件:顺序线性表L已存在,compare()是数据元素判定函数(满足为1,否则为0) // 操作结果:返回L中第1个与e满足compare()的数据元素的位序//若这样的数据元素不存在, 则返回值为0。算法2.6// compare为满足一定条件的一类函数,称为函数类形参 ElemType *p;int i = 1; // i的初值为第1个元素的位序p = L.elem; // p的初值为第1个元素的存储位置while(i<=L.length && !compare(*p++,e))i++;if(i<=L.length)return i;elsereturn 0; }

int *f(int i, int j);

int (*p)(int i, int j);

前者是返回值是指针的函数;后者是一个指向函数的指针

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。