1.指针数组:指针数组是数组,这个数组用来存放指针。
例:int *arr[10]; 整形指针数组; char **arr[10]; 字符型的二级指针数组
2.数组指针:数组指针是指针,指针指向的是数组。
例:int (*p)[10]; 数组指针([ ] 的优先级高于*,所以需要加上( )来保证p先与*结合)
3.函数指针:函数指针是指针,指针指向的是一个函数。
例:void (*P)( ); ————>( )的优先级高于* 。
4.函数指针数组:函数指针数组是数组 ,是将函数的地址存到一个数组中。
例:int (*arr[10])( ); arr先与[ ]结合,说明arr是一个数组,数组的内容是int (*)( )类型的函数指针。
5.指向函数指针数组的指针:是一个指针,指针指向一个数组,数组中的元素都是函数指针。
例:void (*(*arr)[10])( );
判断一个复杂的式子到底是什么类型,就看其数组名左右相邻的元素,谁的优先级高,先与谁结合,则为此类型。
而在一段很长的一段描述中,想要迅速的判断出究竟是什么类型,只需要看这段描述中的最后两个字,即为类型。例如 “指向函数指针数组的指针”这段话中的最后两个字为“指针”,则可以迅速判断出,此式的类型为指针类型。
只要掌握方法和技巧,判断指针数组和函数就变得很简单啦!