函数指针

void add(int a, int b)

{

std::cout << a + b << std::endl;

}

void(*p)(int, int);//定义函数指针

p = add;//为函数指针赋值

 1 #include <iostream>
 2 
 3 void add(int a, int b)
 4 {
 5     std::cout << a + b << std::endl;
 6 }
 7 
 8 void main()
 9 {
10     void(*p)(int, int);//定义函数指针
11 
12     p = add;//为函数指针赋值
13 
14     p(1, 2);//一样
15 
16     (*p)(1, 2);
17     (**p)(1, 2);
18     (***p)(1, 2);
19     (****p)(1, 2);
20     (*****p)(1, 2);
21 
22     (&*p)(1, 2);//&没有*不可以执行,&超过两个也不可以执行
23     (&**p)(1, 2);
24     (&***p)(1, 2);//一样
25 
26     std::cout << p << " " << *p << std::endl;//C++编译器会自动把*p处理为p
27 
28     std::cout << typeid(p).name() << " " << typeid(*p).name() << std::endl;
29     
30     system("pause");
31 }
原文地址:https://www.cnblogs.com/denggelin/p/5674579.html