来来来,先来一节语文课,请说出以下词汇说的都是什么鬼?
① 函数指针
② 指针函数
③ 数组指针
④ 指针数组
还有个找抽的:⑤ 函数指针数组
经翻阅小学五年级语文课本得知,一个短语中的最后部分,是这个短语的中语,其余部分是定语(修饰语)。也就是说,以上短语相当于:
① 指向函数的指针
② 返回指针的函数
③ 指向数组的指针
④ 放了很多指针的数组
⑤ 放了很多指向函数的指针的数组
语文课上完了,然鹅,没用!你不能在源码里写这些中文,我们需要将它们表达为代码。初学者们的福音到了,以上那些渣渣是这样的:
① 函数指针 p
int func(char , double); // 一个普通函数
int (*p)(char, double); // 一个指向以上函数的指针
p = &func // 让 p 指向函数 func
② 指针函数 func
char * func(int, float); // 一个返回指针的函数
③ 数组指针 q
int num[10]; // 一个普通数组
int (*q) [10]; // 一个指向以上数组的指针
q = # // 让 q 指向数组 num
④ 指针数组 ps
char * ps[5]; // 一个放了 5 个 char* 指针的数组
⑤ 函数指针数组 fs
void func(double, int); // 一个普通函数
void (*fs[3])(double, int); // 一个存放了 3 个指向以上函数的指针的数组
通过以上的示例,你必然已经全然了然搞清楚了这5个词语的内在含义,再也不惧怕任何与此相关的面试和笔试。
但宇宙的基本规律告诉我们,凡事有利就有弊。从此,你要明白,你与3分钟前的你彻底不同,你需要背负跟你这个年纪不相称的智慧,需要承受跟你的经历不相称的经验,你也需要面临开宾利买游艇、迎娶傻白甜、走上人生巅峰的宿命。
凡事皆有因,施主,保重!