美文网首页
函数指针的定义,赋值,调用

函数指针的定义,赋值,调用

作者: 元素周期表的十七君 | 来源:发表于2017-09-14 09:32 被阅读0次

http://www.cnblogs.com/windlaughing/archive/2013/04/10/3012012.html

void myFun(int x);    //声明也可写成:void myFun( int );

int main()

{

myFun(100);//一般的函数调用

return 0;

}

void myFun(int x)

{

printf("myFun: %d\n",x);

}

函数指针变量的声明:

void (*funP)(int) ;   //声明一个指向同样参数、返回值的函数指针变量。

(整个函数指针变量的声明格式如同函数myFun的声明处一样,只不过——我们把myFun改成(*funP)而已,这样就有了一个能指向myFun函数的指针了。当然,这个funP指针变量也可以指向所有其它具有相同参数及返回值的函数。)

#include#includevoid (*funP)(int);  //声明也可写成void(*funP)(int x),但习惯上一般不这样。

void (*funA)(int);

void myFun(int x);    //声明也可写成:void myFun( int );

int main()

{

//一般的函数调用

myFun(100);

//myFun与funP的类型关系类似于int 与int *的关系。

funP=&myFun;  //将myFun函数的地址赋给funP变量

(*funP)(200);  //通过函数指针变量来调用函数

//myFun与funA的类型关系类似于int 与int 的关系。

funA=myFun;

funA(300);

//三个貌似错乱的调用

funP(400);

(*funA)(600);

(*myFun)(1000);

return 0;

}

void myFun(int x)

{

printf("myFun: %d\n",x);

}

总结:

1、 其实,myFun的函数名与funP、funA函数指针都是一样的,即都是函数指针。myFun函数名是一个函数指针常量,而funP、funA是函数数指针变量,这是它们的关系。

2、但函数名调用如果都得如(*myFun)(10)这样,那书写与读起来都是不方便和不习惯的。所以C语言的设计者们才会设计成又可允许myFun(10)这种形式地调用(这样方便多了,并与数学中的函数形式一样)。

3、 为了统一调用方式,funP函数指针变量也可以funP(10)的形式来调用。

4、赋值时,可以写成funP=&myFun形式,也可以写成funP=myFun。

5、但是在声明时,void myFun(int )不能写成void (*myFun)(int )。void (*funP)(int )不能写成void funP(int )。

6、函数指针变量也可以存入一个数组内。数组的声明方法:int (*fArray[10]) ( int );

相关文章

  • 函数指针的定义,赋值,调用

    http://www.cnblogs.com/windlaughing/archive/2013/04/10/30...

  • C++:函数指针 & 返回函数指针的函数

    函数指针 & 返回函数指针的函数 一、函数指针的声明和使用 声明一个函数指针,给它赋值并调用它指向的函数 函数指针...

  • JS 函数

    函数的定义 具名函数 匿名函数 箭头函数 构造函数 调用时机 先赋值后调用 先调用后赋值 setTimeout 作...

  • C

    1.函数 void (*p)(); 函数指针;相当于函数变量,可以将函数引用赋值给它,赋值时候不调用 void *...

  • C/C++函数指针+动态内存分配

    函数指针//定义一个函数void message(){}//通过指针调用函数void (*p) () =mess...

  • C语言基础回顾(长期更新):指针,线程

    函数指针## 在结构体里面定义函数指针func,然后在main里面给这个指针赋值为add函数 上面这句看了我好久,...

  • C语言特性(函数与指针)

    函数与指针 用函数指针变量调用函数 当定义函数之后,C语言允许定义一个指针变量来指向该函数,接下来就可通过该指针变...

  • iOS 理解Block的调用

    Block是C语言的扩充功能。 1.先看看C语言的函数: 直接调用: 使用函数指针调用: 将func赋值给func...

  • 那些年,搞不清的指针

    函数指针 函数指针的定义函数返回值(*pf) 函数形参列表;此时pf未初始化;用与其类型匹配的函数名对其赋值即可 ...

  • 2018-05-24

    基础不够扎实,听的懂做不出来 函数指针复习 行指针 指针数组 新知识 函数声明 函数定义 函数调用 函数名相同,型...

网友评论

      本文标题:函数指针的定义,赋值,调用

      本文链接:https://www.haomeiwen.com/subject/ldvrsxtx.html