函数指针和指针函数

傷城~ 2023-07-21 11:29 113阅读 0赞

指针函数

定义

指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
声明格式为:*类型标识符 函数名(参数表)

看看下面这个函数声明:

  1. int fun(int x,int y);

这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值。
接着看下面这个函数声明:

  1. int *fun(int x,int y);

这和上面那个函数唯一的区别就是在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。

指针函数也没什么特别的,和普通函数对比不过就是其返回了一个指针(即地址值)而已。

函数指针

函数指针,其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。

声明格式:类型说明符 (*函数名) (参数)
如下:

  1. int (*fun)(int x,int y);

函数指针是需要把一个函数的地址赋值给它,有两种写法:

  1. fun = &Function
  2. fun = Function;

取地址运算符&不是必需的,因为一个函数标识符就表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。

调用函数指针的方式也有两种:

  1. x = (*fun)();
  2. x = fun();

建议使用第一种,因为可以清楚的指明这是通过指针的方式来调用函数

定义不同

指针函数本质是一个函数,其返回值为指针。
函数指针本质是一个指针,其指向一个函数。

写法不同,一个有括号一个没有括号

  1. 指针函数:int* fun(int x,int y);
  2. 函数指针:int (*fun)(int x,int y);

可以简单粗暴的理解为,指针函数的*是属于数据类型的,而函数指针的星号是属于函数名的。

函数名带括号的就是函数指针,否则就是指针函数

参考

https://blog.csdn.net/luoyayun361/article/details/80428882

发表评论

表情:
评论列表 (有 0 条评论,113人围观)

还没有评论,来说两句吧...

相关阅读

    相关 函数指针指针函数

    指针函数 定义 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。 声明格式为:\类型标识符 函数名(参数表) 看看下面

    相关 C++函数指针指针函数

    指针函数:一个返回指针的函数,本质是一个函数,返回的变量为指针类型。这里不做赘述。主要讲函数指针的概念与运用。 函数指针 定义 本质为一个指针变量,这个指针指向一

    相关 指针函数函数指针

    指针函数和函数指针的区别在于: 函数指针是指针指向函数地址,指针函数是返回值类型为指针。 下面看下函数指针的例子: include<stdio.h>

    相关 函数指针&指针函数

    一、 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1、指针函数是指带指针的函数,即本质

    相关 函数指针指针函数

      函数指针和指针函数经常是很多初学者感到疑惑的地方,其实这两个是完全不同的概念。 指针函数   指针函数就是返回值为指针类型的函数。 函数指针   指针函数的概念其实