1.指针
int * p ( 这里定义一个指针 p为指针变量 指向的是某一个地址)
2.数组
int arr [10] 这里定义了10个int 类型的数据 可以通过arr[0] arr[1].....来访问数组中的每个元素
3.指针数组
顾名思义:首先是一个数组 而每个数组元素的类型又是一个指针
ex: int * arr [5] 由于[ ]优先级高于 * 所以 arr[5]先结合 为数组 arr为数组名 其每个数组元素的的类型都为int *
4.数组指针
顾名思义:首先是一个指针 它指向的是一个数组
ex:int (* arr)[5] 首先(* arr)结合成一个指针 它指向一个包含5个元素的int 类型数组 指针变量为arr
5.函数指针
从数组 指针 我们理解到 函数指针应该也和其具有 一样的性质 是一个指针 指向的是一个函数而已
int (* p ) ( int * )= &fun 这里 fun 是一个函数 *p 是 一个指针 有能力指向一个函数 它的 函数名为fun 函数参数类型为 int * 返回值类型为 int 型
6.函数指针数组
首先是一个数组 数组 的每个元素是一个指针 分别指向不同的函数
ex: int (* p [3] ) (int *) = { fun1,fun2,fun3} 是一个数组 有3 个元素 每个元素是一个*p 的指针
7.指向函数指针数组的指针
首先 是 一个 指针 它指向的是一个数组 数组的每个元素又是一个指针 其又 指向不同的函数
ex: int(*pr(* p)[3])( int *) = {fun1 ,fun2,fun3}