指针是包含另一个变量的地址变量,指针的一般说明形式如:int * fd,其中fd是一个指向整形变量的指针。比较复杂的指针,比如( pfpi)(),可以按照如下原则来分析:以标识符为中心,一对方括号一般表示数组,一对圆括号表示函数或强调某一优先顺序,方括号和圆括号为同一优先级,方括号和圆括号比*号的优先级高,方括号和圆括号结合方向自左向右,*号结合方向自右向左。

指针例子:

int *fd fd是一个指向整型变量的指针。

int *fip() 因圆括号优先级高,故fip先与圆括号结合,说明fip是一个函数,这个函数返回一个指向整数的指针。

int (*pfi)() 因两对圆括号为同一优先级,故从左到右,pfi是一个指针,这个指针指向一个函数,这个函数返回一个整数。

int *par[] 因方括号比*号优先级高,故par是一个数组,这个数组中的每一个元素是指向整数的指针。

int (*ptr)[] 因方括号和圆括号为同一优先级,故ptr是一个指针,这个指针指向一个数组,这个数组的每一个元素是一个整数。

int *(*pfpi)(), pfpi是一个指针,这个指针指向一个函数,这个函数返回一个指向整数的指针。