1.指针数组
指针数组顾名思义它是一个数组,但它的作用是用来存放指针的。
例:
2.数组指针
数组指针是一个指针,但他与普通指针不同的是有能力指向一个数组。
例:
数组的地址如何来进行存储?
对于上面的代码是否可行?答案很明确p1是错误的因为它是一个整形指针不能用来存放数组的地址。那么显然p2是可以的,因为他是一个数组指针用来存放一个数组的地址是合适的.
3.函数指针
首先看代码
要直到可以存放地址的必须是指针才行,因此答案就很明显了pf1可以存放,pf1先和*结合说明是指针,指针指向的是一个函数指向的函数无参数,返回值为void.
下面来看两端有趣的代码:
解释1:这里的代码是一次函数调用把0强制类型转换为一个函数指针,解引用去调用0地址处的函数,该函数无参数,返回类型为void
解释2:signal是一个函数,该函数的参数为int和一个函数指针,这个函数指针指向的那个函数的参数为int,返回类型为void,signal函数的返回类型为一个函数指针,这个函数指针指向的那个函数的参数为int,返回类型为void
4.函数指针数组
应用:
这里的p就是一个函数指针数组。数组里储存了5个指向函数的指针,可以通过p的下标使用其中的函数
这里就对p中的函数使用,当然这是简化般的使用。