C++函数指针总结
学习c++的过程中,指针是难点,熟悉了指针之后,还有一个让人很蛋疼的难点,那就是函数指针了。本博文详细介绍一下常见的各种坑爹的函数指针。 至于指针的详细学习,推荐这篇博文 C++指针详解 与数据一样,函数也有地址,函数的地址就是内存中存放函数语言代码的起始地址。函数指针就是指向这个地址。函数指针所指向的类型,就是函数本身。我们知道,指针所指向类型代表了指针所指向的内存区域的大小。所以函数指针所指向的类型,就是函数在内存中所占据内存的大小。知道了函数的起始地址和大小,所以函数指针可以很轻易的代替函数完成函数调用。 一、最简单的函数指针 变量都包括声明和赋值,指针不例外,函数指针也不例外。我们来看一个简单的函数: void add(int a, int b){ cout << a + b << endl; } 一个简单的加法计算并输出到命令行的函数。 那么如何通过函数指针来调用它呢? 1、声明: void (*p1)(int a, int b); 函数指针的声明很简单,基本就是通过一个指针把函数名替换。指针p1的类型为void (*) (int a,int b),表明指针是一个指向某个函数的指针,指针指向的类型为void () (int a,int b) 2、赋值: p1 = add; 3、也可以直接定义: void (*p1)(int a,