C语言函数指针理解(1)

来源:互联网 发布:json base64 编辑:程序博客网 时间:2024/06/01 22:20

  • C语言函数指针理解1
    • 函数调用
    • 函数指针

C语言函数指针理解(1)

参考文章: [C函数指针详解]

1.函数调用

普通的函数调用:

void myFunc(int a);                 //函数申明int main(int argc, char* argv[]){   //主函数    MyFunc(10);}void MyFunc(int a){                 //自定义函数    printf("%d\n",a)}

这是一个普通的函数调用,我们首先申明自己的自定义函数,然后再在主函数中调用。

2.函数指针

根据我自己的理解,函数指针是定义了一个指针,它指向的是一个函数(这个指针储存的是代码段中这个函数的起始地址)。

void myFunc(int a);                 //函数申明void (*myFuncP)(int a);             //定义函数指针,一般写作void (*myFuncP)(int);  int main(int argc, char* argv[]){   //主函数    myFunc(10);                     //函数调用    //将函数指针指向myFunc    //另一种形式:myFuncP = &myFunc;    myFuncP = myFunc;    //调用myFunc    //另一种形式:(*myFuncP)(20);    myFuncP(20);}void myFunc(int a){                 //自定义函数    printf("%d\n",a)}

其中,

    //另一种形式:myFuncP = &myFunc;    //另一种形式:(*myFuncP)(20);

就可以理解成:myFuncP指针取myFunc的地址(&myFunc),(*myFuncP)就是取指针所指向的函数。通过

int *p;p = &a;*p = 10;

理解一下。

0 0
原创粉丝点击