分享

C语言学习:C语言中指针函数与函数指针的详解

 小辰带你看世界 2016-09-11

不少人在学习C语言的过程中总是会把“指针函数”与“函数指针”搞混淆,为了让大家更好的去理解这两者之间的区别,今天在这里整理了C语言中指针函数与函数指针的详解,需要的朋友可以参考一下:

指针函数的定义:指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。

C语言学习:C语言中指针函数与函数指针的详解

指针函数:返回值是一个指针

代码示例:

int* add(int a, int b)

{

int *p = new int(0);

*p = a + b;

return p;

}

一个函数不仅可以带回一个整型数据的值,字符类型值和实型类型的值,还可以带回指针类型的数据,使其指向某个地址单元。

返回指针的函数,一般定义格式为:

类型标识符 *函数名(参数表)

int *f(x,y);

其中x,y是形式参数,f是函数名,调用后返回一个指向整型数据的地址指针。f(x,y)是函数,其值是指针。

函数指针


指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式如下:

类型说明符 (*函数名)(参数)

其实这里不能称为函数名,应该叫做指针的变量名。函数类型 (*指针变量名)(形参列表);

“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

例如:

int (*f)(int x);

double (*ptr)(double x);

在定义函数指针时请注意:

函数指针和它指向的函数的参数个数和类型都应该是—致的;

函数指针的类型和函数的返回值类型也必须是一致的。

C语言学习:C语言中指针函数与函数指针的详解

通过函数指针调用函数

函数指针是通过函数名及有关参数进行调用的。

与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则*p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则*pf就等价于它所指的变量f。同样地,*f是指向函数func(x)的指针,则*f就代表它所指向的函数func。所以在执行了f=func;之后,(*f)和func代表同一函数。

由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。现在我们就讨论如何用函数指针调用函数,它应执行下面三步:

首先,要说明函数指针变量。

例如:int (*f)(int x);

其次,要对函数指针变量赋值。

例如: f=func; (func(x)必须先要有定义)

最后,要用 (*指针变量)(参数表);调用函数。

例如: (*f)(x);(x必须先赋值)

不知道大家有没有看懂呢,这下在学习arm的时候就不会搞混淆了吧!

arm中指针函数与函数指针的详解就给大家介绍到这里了,有自己更好的方法可以在下方评论处写出你的见解,大家一起学习。需要哪方面的只是也可以通过评论告诉我,后续会不断的给大家带来精彩文章。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多