1、数组指针
二维数组。
2、函数指针
函数指针做函数参数的思想精华——调用者任务的人 和 实现任务的人 解耦合
(回调函数的本质:提前做了一个协议的约定(把函数的参数、函数返回值提前约定))
(C++编译器通过多态的机制(提前布局vptr指针和虚函数表,找虚函数入口地址来实现))
1)基本功能演示:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
//=====> 函数指针做函数参数的思想精华:
// 调用者任务的人 和 实现任务的人 解耦合
int myadd(int a, int b) //原来子任务
{
int c = 0;
c = a + b;
printf("func myadd() do \n");
return c;
}
int myadd2(int a, int b) //后续子任务
{
int c = 0;
c = a + b;
printf("func myadd2() do \n");
return c;
}
int myadd3(int a, int b) //后续子任务
{
int c = 0;
c = a + b;
printf("func myadd3() do \n");
return c;
}
int myadd4(int a, int b) //后续子任务
{
int c = 0;
c = a + b;
printf("func myadd4() do \n");
return c;
}
// int (*myFuncVar)(int a, int b)——函数指针变量——返回类型为int,两个int型变量
int myMianOp( int(*myFuncVar)(int a, int b) )
{
myFuncVar(10, 20); //间接的调用 myadd函数
return 0;
}
void main()
{
myMianOp(myadd); //调用者
myMianOp(myadd2); //调用者
myMianOp(myadd3); //调用者
myMianOp(myadd4); //调用者
}
2)函数指针应用一——正向调用:甩开C++编译器,自己找到DLL中函数的地址,然后去调用函数